Javascript Regex Lookbehind Alternative

时间:2016-04-28 08:57:10

标签: javascript regex

我想用非空格来表达。

var paragraphy="Apple banana kişiler ki örnek foo.";
var word="kişiler"; 
var regex = new RegExp("(?:[\\s>]|^)("+word+")(?=[.,;?!]?(?:[<\\s])|$)", "gi");
console.log(paragraphy.match);

这打印:[“kişiler”]但我想要这个结果:[“kişiler”] 我必须使用Positive Lookbehind但JavaScript不支持它。有替代解决方案吗?

2 个答案:

答案 0 :(得分:1)

由于您不能将单词边界与unicode字符一起使用,因此请让空格匹配,但将单词分组以检索它:

(?:^|\s)(<your word>)(?:\s|$)

匹配后,第1组应该是预期的单词。

例如:

var regex = /(?:^|\s)(kişiler)(?:\s|$)/
var paragraphy="Apple banana kişiler ki örnek foo."
paragraphy.match(regex)[1]
> "kişiler"

答案 1 :(得分:1)

JS Demo

var paragraphy="Apple ba kişiler nana ki örnek foo.";
var word="kişiler"; 
var regex = new RegExp("(?:^|\\s)("+word+")(?=\\s|$)", "gi");
var m = regex.exec(paragraphy);
document.writeln(m[1]);