0

在 Javascript 中使用 RegExp 时,如果您想将正则表达式匹配到输入的开头,您可以像这样使用 ^

var regEx = /^Zorg/g;  
regExp.exec( "Zorg was here" );  // This is a match
regExp.exec( "What is Zorg" );  // This is not a match

在字符串中的不同位置开始匹配时,这不起作用。

var regEx = /^Zorg/g;
regExp.lastIndex = 5;
regExp.exec( "What Zorg?" );  // This is not a match but i want it to

根据 mozilla 文档,您应该能够通过使用 regExp 上的粘性标志 y 来使其匹配。

var regEx = /^Zorg/gy;
regExp.lastIndex = 5;
regExp.exec( "What Zorg?" );  // This should match in firefox 

现在问题来了。当从不同于 0 的索引开始时,是否可以编写一个在搜索开始时匹配的正则表达式。(现在使用 Node,但也希望在 webkit 中使用它)

var regEx = ????;
regExp.lastIndex = 5;
regExp.exec( "What Zorg?" );  // This this should match 
regExp.exec( "Who is Zorg?" );  // This this should not match
4

1 回答 1

1

只是偏移它,所以/^.{5}Zorg/ 这意味着'从行首开始的任何 5 个字符,然后是 Zorg'。

于 2013-03-01T16:45:21.137 回答