js正则表达式2简单模式

js正则的简单模式都是正则里面相对较为基本的内容,在这里主要分为一下几类:

1.元字符:[   {   (  *  +  .  ?   $   |   \,这些字符在正则表达式中代表着一些特殊的含义,在查找的时候需要进行转义(加上"\"即表示转义)。

上面各个字符的具体特殊含义为:

[ ]:匹配括号中的任意一个字符,注意是有且只有一个。

{}:这个一般和量词一起使用

():表示的是分组

*:在表示量词中使用,表示的是出现0次或者多次

+:在表示量词中使用,表示的是出现1次或者多次

?:在表示量词中使用,表示的是出现0次或者一次

.:表示的是任意一个字符

$:一行的结尾

^:一行的开头

\:通常会和其他的字符一起使用,组合成一个特殊的含义。

eg:找下面的字符串中匹配"("

var str="the  (  is a special char in RegExp";

var reg=/\(/gi;

alert(reg.exec(str));//就会正确显示出(;

2.特殊字符:一些有特殊含义的组合常见的有:

\s:空格字符(包括空格,tab,换行,换页,回车)

\S:非空字符(注意这是大写的S),即相当于:[^\s];

\d:一个数字,即相当于[0-9];

\D:一个非数字

\w:一个单词字符(包括字母数字和下划线)即相当于[a-zA-Z_0-9];

\W:一个非单词字符

\b:一个单词的边界

\B:一个非单词的边界

eg:找出一个字符串中所有的数字的个数,单词的个数,以及最长的那个单词

var str="Whether 60 or 16, there is in every human being’s heart the lure of wonders, the unfailing appetite for what’s next and thejoy of the game of living. In the center of your heart and my heart, there is a wireless station; so long as it receivesmessages of beauty, hope, courage and power from man and from the infinite, so long as you are young";
var reg=/\w+/gi;//匹配出所有的单词
var regnum=/\d+/;//匹配出所有的数字
var s=str.match(reg);//得到所有的单词和数字的数组
var nums=new Array();//用来保存数字
var numIndex=0;//记录数字的个数
var words=new Array();//保存单词
var wordsIndex=0;//记录单词的个数
var maxlength=0;//记录最长的单词的长度
var maxWords="";//记录最长的单词
alert(s);
for(var i=0;i<s.length;i++){
if(regnum.test(s[i])){
nums[numIndex++]=s[i];
alert("aa");
}else{
words[wordsIndex++]=s[i];
}

for(var i=0;i<words.length;i++){
if(words[i].length>maxlength){
maxWords=words[i];
maxlength=words[i].length;
}
}

document.write("数字有:");
for(var i=0;i<nums.length;i++){
document.write(nums[i]+"<br/>");
}
document.write("单词的个数是:"+(words.length+1)+"分别是:");
for(var i=0;i<words.length;i++){
document.write(words[i]+"<br/>");
}
document.write("最长的单词是:"+maxWords+"长度是:"+maxlength);

3.字符类

   简单类:[],中括号中的任意一个字符

   负向类:[^],非中括号中的字符

   范围类:[起始字符-终止字符]:中括号范围类的字符

   组合类:上面几种情况的组合

   预定义类:即前面的预定义字符,弱项单独匹配出这些字符需要转义

4.量词:

   {n}:表示固定出现n次

   {n,}:表示至少出现n次

   {n,m}:表示出现n到m次

eg:

    一年的12个月份,两种形式01-12或者1-12,正则表达式:(0?[1-9]|1[0-2]);

   Email:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$     这个是十分严格和正规的几乎包含了所有的合法Email地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章