Javascript Regex Lookbehind 替代方案 [英] Javascript Regex Lookbehind Alternative

查看:41
本文介绍了Javascript Regex Lookbehind 替代方案的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想捕捉没有空格的单词.

I want to catch word with non-space.

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 不支持它.有没有替代的解决方案?

This prints: [" kişiler"] but I want this result: ["kişiler"] I must use Positive Lookbehind but it is not supported in JavaScript. Is there an alternative solution?

推荐答案

既然你不能使用 unicode 字符的单词边界,让我们匹配空格但将单词分组以检索它:

Since you can't use word boundaries with unicode characters, let's match the spaces but group the word to retrieve it :

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

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

After a match, group 1 should be the expected word.

例如:

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

这篇关于Javascript Regex Lookbehind 替代方案的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆