美文网首页
RegExp 对象方法

RegExp 对象方法

作者: 5ab2de3d26e8 | 来源:发表于2016-12-01 15:26 被阅读0次

test

<pre>
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(reg.test(str)); // true
</pre>


exec

<p>
在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。
但是,当 RegExpObject 是一个全局正则表达式时,exec() 的行为就稍微复杂一些。它会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string。当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0
</p>

var str = "Visit W3School, W3School is a place to study web technology."; //多次查找
var patt = new RegExp("w3School","ig");
var result;

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

compile

<p>compile() 方法用于在脚本执行过程中编译正则表达式。
compile() 方法也可用于改变和重新编译正则表达式。</p>

var str="Every man in the world! Every woman on earth!";
patt=/man/g;
str2=str.replace(patt,"person");
document.write(str2+"<br />");
patt1=/(wo)?man/g;
patt.compile(patt1);  //改变正则表达式为patt1
str2=str.replace(patt,"person");
document.write(str2);

相关文章

网友评论

      本文标题:RegExp 对象方法

      本文链接:https://www.haomeiwen.com/subject/inbxmttx.html