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*/可能更合适。