JS: 建立含有变量的正则表达式
作者:黑马
在JS里我们很容易地建立一个正则表达式,其格式无非如此:
/expression/ 或 "expression"
其中,成对出现的正斜杠(/)或小角引号(")作为边界符号,其内的表达式(expression)为正则表达式的具体内容。
通常,构造一个正则表达式,expression是具体的、已知的字串等东西,但是,实践中我们经常需要构造一个可以互动变化的表达式,也就是说,用于替换脚本的正则表达式是不确定的,由用户根据需要自行决定,而我们不可能在后台为用户的每一个选择建立一个独立的正则表达式,为此,构造一个可包含变量的正则表达式就必不可少。
在JS里,构造一个可包含变量在内的正则表达式可用如下方式:
re = new RegExp(expression,rule);
不难看出,式子里,expression为正则表达式的构造内容,它不再受正斜杠和小角引号的限制,可以是一个变量;rule为规则,其值为i或g或gi,为i时只匹配一次,g和gi则为全局变量,遍历匹配。
例如,我们要将字串中的“苹果”全部变成“雪梨”,可如此实现:
str="苹果有大苹果小苹果之分"; //原字串
oldstr="苹果"; //待替换字串
newstr="雪梨"; //替换为字串
re=new RegExp(oldstr,"gi"); //建立正则表达式 - 全部替换
targetstr=str.replace(re,newstr); //替换后的字串
document.write("替换前: " + str + "<br>替换后: " + targetstr);
执行以上代码,效果如下:
替换前: 苹果有大苹果小苹果之分
替换后: 雪梨有大雪梨小雪梨之分
本文还利用以上原理,将文中正文部分所出现的“的”字全部变为红色。
我來試試 >> Go
【 黑马 2008.9.8 于 Tonglin 】
网 |

