javascript RegExp单词边界问题
这是我的代码:javascript RegExp单词边界问题,javascript,regex,Javascript,Regex,这是我的代码: var boo = new RegExp("\\Bis\\B","gi"); var result = boo.exec("this AisA stackoverflow"); document.write(result); 结果是:“是”,但我希望函数exec使用 非单词边界\B.我知道我可以使用.is.+等模式返回AisA,但是 我想知道如何用非单词边界做同样的事情 这可能就是你想要的 \S*\Bis\B\S* 由于边界与字符不匹配,但只检查一个条件,因此必须使用其他方
var boo = new RegExp("\\Bis\\B","gi");
var result = boo.exec("this AisA stackoverflow");
document.write(result);
结果是:“是”,但我希望函数exec使用
非单词边界\B.我知道我可以使用.is.+等模式返回AisA,但是
我想知道如何用非单词边界做同样的事情 这可能就是你想要的
\S*\Bis\B\S*
由于边界与字符不匹配,但只检查一个条件,因此必须使用其他方法来获取字符。尝试以下操作:
/.\Bis\B./
这将检查非边界,并将该字符与
字边界称为零宽度匹配,这意味着它们匹配的是条件,而不是字符。例如,在regex“\bw”中,“\b”测试在表达式中的位置之前或之后是否有一些空格。它不捕捉任何东西
如果要捕获单词字符,请尝试使用\w
请参阅:匹配包含“is”的单词:
/\b\w*is\w*/gi
最后一个\b不是必需的,因为它是LA(\w*)的一部分 不要对静态字符串使用
newregexp
;JavaScript具有更快、更好、更不容易出错的文本。例如,您的代码可以写成var boo=/\Bis\B/gi代码>。它还与“abcisdefg”中的“cisd”匹配。根据他的应用程序的不同,/\w*是\w*/可能更合适。