正则表达式 -- javascript

2 javascript      http://www.w3school.com.cn/js/jsref_obj_regexp.asp

                         http://www.w3school.com.cn/js/jsref_obj_string.asp

2.1 正则表达式定义    

    语法 1 re = /pattern/[flags]
    语法 2 re = new RegExp("pattern",["flags"])

           Flags

            g (全文查找出现的所有 pattern)
            i (忽略大小写)
            m (多行查找) 

            default:   找到第一个符合pattern的字串后返回(忽略其他符合条件的字串)

 

2.2 RegExp对象提供的正規表示式方法有:
      2.2.1 RegExp.exec(”字串”) 或 RegExp(”字串”)
       若正则没有g修饰符,该函数只记录匹配参数字串的第一个符合正则的子字串的内容在对象中。

  1.           var result1 = /b/.exec("test billing");
  2.           // exec返回的是一个对象而不是一个子字串
  3.           alert(result1.index + " : " + result1.input + "  :  " + result1);

       当正则表达式含有g修饰符,exec() 的工作原理如下:

          exec执行之后会更新正则的 lastIndex 属性(表示本次匹配的字符串的下个字符的索引)

         下一次再用这个正则表达式匹配字符串的时候就会从上次的lastIndex属性开始匹配


 

  1.              var test="";
  2.              var regu=/e/g;
  3.              //regu.lastIndex=10;
  4.              while(test=regu.exec("The best things in life are free"))
  5.              {     
  6.                alert(test.index + " : " + test.input + "  :  " + test + " lastIndex: " + regu.lastIndex );
  7.                //可以赋值给regu.lastIndex ,或者用RegExp对象的compile方法把regu.lastIndex的值重设为0
  8.              }

      2.2.2RegExp.test(”字串”)
               僅測試引數是否符合pattern,是傳回true、否則傳回false。

                    example

  1. //(1)  只要字串包含符合条件的子串则返回true
  2.  alert(/b/.test("bc"));  //(true) 
  3.  alert(/c/.test("bc"));  //(true)        
  4.  alert(/cb/.test("bc")); //(false)
  5. //(2)   匹配字串是否完全符合正则
  6.  alert(/^b$/.test("bc"));  // (false) 
  7.  alert(/^b$/.test("b"));   //(true)

2.3 string 对象的内置函数 http://blog.csdn.net/gabriel80/archive/2008/11/15/3304751.aspx 

charAt()               返回传递给此方法的索引处的字符

indexOf()              返回被传递给此方法的字符串在一个sting对象的实例中第一次出现的索引

substring()            返回被传递的开始和结束索引之间的字符

toUpperCase()      将字符串中的所有字符转换为大写
toLowerCase()     将字符串中的所有字符转换为小写

match()          返回一个数组,此数组包含着被传递给此方法的规则表达式找到的匹配。

  1.                                var result =  "The best things in life are free".match(/e/);
  2.                                 //注销上句并取消下句代码,运行效果就能知道 g 对  match的影响了
  3.                                 //var result =  "The best things in life are free".match(/e/g);
  4.                                 if(result)
  5.                                   {
  6.                                      if(result.index) 
  7.                                        alert("result.index : " + result.index);
  8.                                     else
  9.                                         alert("no index property");
  10.                                      if(result.input) 
  11.                                         alert("result.input : " + result.input);
  12.                                     else
  13.                                       alert("no input property");
  14.                                      for(i=0;i<result.length;i++)
  15.                                         {
  16.                                              alert("result[" + i + "]: " + result[i]);
  17.                                         }
  18.                                   }else{
  19.                                         alert('null:匹配失败!')
  20.                                  }

replace()  用被传递给此方法的字符串替换正则表达式匹配的子字串,返回新字串而不改变原字串的值

  1.                 var test =  " test ";
  2.                 alert(  test.replace(/(^/s*)|(/s*$)/g, ""));     // 对所有符合regEx的字串进行替换后返回新字串 
  3.                 alert(  test.replace(/(^/s*)|(/s*$)/, ""));      //只对第一个符合regEx的字串进行替换后返回新字串 
  4.                 alert(test.length);                              // test变量的长度仍包括" test "前后的空括号
  5.                 //var reg =  /(/w+)(/s)(/w+)/;
  6.                 var reg =  /(/w+)/s(/w+)/;
  7.                 var str = "cainiao gaoshou";
  8.                 var newStr =  str.replace(reg,'$2 $1');
  9.                 alert(newStr);

search()   返回正则表达式第一次匹配的位置,如果没有找到匹配则返回-1

  1.                var reg = /idea/;
  2.                var str = 'blueidea';
  3.                var pos =  str.search(reg);
  4.                alert(pos);

split()  返回被分割为段的字符串,这个分割由被传递给此方法的字符串和实例限制定义

  1.                  var reg = //W/; //非单词,如果小写w则表示单词字符,数字,下划线
  2.                  var str =  'bbs.blueidea.com';
  3.                  var arr =  str.split(reg);
  4.                  document.write(arr);
  5.                  for(i=0;i<arr.length;i++)
  6.                      alert(arr[i]);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值