JS中的正则表达式入门(7)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:04 点击:

 if(result ){
 document.write('index:'+result.index+'<br  />'
 +'input:'+result.input+'<br  />'
 );
 for(i=0;i<result.length;i++){
 document.write('result['+i+']:'+result[i]+'<br  />')
 }
 }else{
 alert('null:匹配失败!')
 }
}例如:


var reg = /b/;
var str =  'bbs.blueidea.com';
matchReg(reg,str);结果如下:


index:0
input:bbs.blueidea.com
result[0]:b


可见,和exec的结果一样。


但是如果正则表达式设置了g修饰符,exec和match的行为可就不一样了,见下例:


index:undefined
input:undefined
result[0]:b
result[1]:b
result[2]:b


设置了g修饰符的正则表达式在完成一次成功匹配后不会停止,而是继续找到所有可以匹配到的字符。返回的结果包括了三个b。不过没有提供input和index这些信息。

 


replace方法
形式:str. replace (reg,’new str’);


它的作用是将str字符串中匹配reg的部分用’’new str”部分代码,值得注意的是原字符串并不会被修改,而是作为返回值被返回。例子:


var reg = /b/;
var str =  'bbs.blueidea.com';
var newStr =  str.replace(reg,'c');
document.write(newStr);结果为cbs.blueidea.com,只有第一个b被替换为c。

 


var reg = /b/g;
var str =  'bbs.blueidea.com';
var newStr =  str.replace(reg,'c');
document.write(newStr);输出ccs.clueidea.com


由于,设置了g修饰符,所以会替换掉所有的b。

 


var reg = /\w+/g;
var str =  'bbs.blueidea.com';
var newStr =  str.replace(reg,'word');
document.write(newStr);输出:


word.word.word。


在replace函数中使用$引用子正则表达式匹配内容
就像在正则里我们可以使用\1来引用第一个子正则表达式所匹配的内容一样,我们在replace函数的替换字符里也可以使用$1来引用相同的内容。


还是来看一个例子吧:


var reg =  /(\w+).(\w+).(\w+)/;
var str =  'bbs.blueidea.com';
var newStr =  str.replace(reg,'$1.$1.$1');
document.write(newStr);输出的结果为:


bbs.bbs.bbs


首先,我们知道第一个子正则表达式匹配到了bbs,那么$1也就代表bbs了。其后我们把替换字符串设置为'$1.$1.$1',其实也就是“bbs.bbs.bbs”。同理,$2就是blueidea,$3就是com。

 


在来看一个例子,颠倒空格前后两个单词的顺序。


var reg =  /(\w+)\s(\w+)/;
var str = 'cainiao  gaoshou';
var newStr =  str.replace(reg,'$2 $1');
document.write(newStr);结果为:gaoshou cainiao,也就是空格前后的单词被调换顺序了。

由于在替换文本里$有了特殊的含义,所以我们如果想要是用$这个字符的话,需要写成$$,例如:


var reg =  /(\w+)\s(\w+)/;

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Gb2312转utf-8编码的方法(vbs+js)
  • 如何使用Ajax技术开发Web应用程序(1)
  • js跳转路径问题
  • JavaScript模仿桌面窗口
  • 2011年度最佳 jQuery 插件
  • jquery学习笔记---jqGrid学习笔记 完整整理
  • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
  • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
  • 我是如何去了解jquery的(六),案例之幻灯片轮换
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1