注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Copper peas ' Bolg

Keep On Moving...This Is My Life...

 
 
 

日志

 
 

【原】js正则表达式test exec replace match  

2011-04-18 22:36:37|  分类: javascript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 /*
         test用于判断是否存在
         exec用于判断是否存在而且需要返回对应匹配的文本
         replace用于判断是否存在而且替换对应的匹配的文本
   */

 //注意js格式规范 /^  $/
         //g:全局匹配 i:忽略大小写
   /*案例一  exec 当 exec() 再也找不到匹配的文本时,它将返回 null

exec 返回匹配文本和还可以返回匹配的位置

  */
   var value='root:123@127.0.0.1:3306';
   var patt = /([^:]+):(.+)@(\d+.\d+.\d+.\d+):(\d{1,5})$/i;
   var arr = patt.exec(value);
   document.write(arr);
   alert(arr[0]);
   alert(arr[1]);
   alert(arr[2]);
   alert(arr[3]);
   alert(arr[4]);
   /*案例二 replace*/
   name = "Doe, John";
         document.write(name.replace(/^(\w+)\s*, \s*(\w+)$/, "$2 $1"));

   name = "Doe, John";
         document.write(name.replace(/^(\w+)\s*, \s*(\w+)$/, "12313 aaaaa"));

   /*案例三 test*/
  
   var str = "Visit W3CSchool";
   var patt1 = new RegExp("W3CSchool");
   var result = patt1.test(str);
   document.write("Result: " + result);

 /*案例四 match 可以返回匹配文本和匹配次数*/

 var value="select * from @arg0 where uid = @arg1 and name =@arg2"; 
   var patt=/@arg/ig;
   var arr = patt.exec(value);
      document.write(arr);
         document.write("<br/>");
         document.write(value.match(/@arg/i));
         document.write("<br/>");
         document.write(value.match(/@arg/ig));
         document.write("<br/>");

 

但exec可以这样获取匹配次数,循环全局去匹配 

var str = "select * from @arg0 where uid = @arg1 and name =@arg2";
var patt = new RegExp("@arg","g");
var result;

while ((result = patt.exec(str)) != null)  {
  document.write(result);
  document.write("<br />");
  document.write(patt.lastIndex);
  document.write("<br />");
 } 

 /*案例五 js多个替换 php有数组替换非常的方便*/

 var sql="select * from @arg0 where uid = @arg1 and name =@arg2"; 
     var arr=['a','b','c'];
     for(var i=0;i<3;i++)
     {
       sql=sql.replace(new RegExp("@arg"+i,"ig"),arr[i])
           }
     document.write(sql);

 

 /*动态字符串 关键字高亮显示*/

var str="select * from @arg0 where uid = @arg1 and name =@arg2 and names =@arg3";
 document.write(str.replace(/(@arg\d)/ig,"<font color=red> $1 </font>"));

 

 

php:

$string =" select * from @arg0 where uid = @arg1 and name = @arg2 ";
$arr    = array();
preg_match_all('/@arg/',$string,$arr);
print_r($arr);
exit();

  评论这张
 
阅读(719)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018