我尝试在JavaScript中使用lookahead / lookbehind(在Regular-Expressions.info中描述),并发现它们不受支持。
我实际上要做的是抓住dar
,win
后面没有。darblabla
。因此,字符串true
应返回darwinblabla
,而false
应为/dar/i.test(string) && !/darwin/i.test(string)
。
现在,我的解决方案是:<table class="table" id="tablepdf">
。
这看起来很长,有没有更短的解决方案(正则表达式字符串?),可以取代当前的声明吗?
答案 0 :(得分:1)
Javascript应该支持负面预测。
alert(/dar(?!win)/.test('darblahblah'))
alert(/dar(?!win)/.test('darwin'))
答案 1 :(得分:1)
答案 2 :(得分:1)
您不能在JavaScript中使用look-behinds,但可以使用预见。
因此,这将产生false
:
document.write(/\bdar(?!win)/i.test("darwin"));
&#13;
对于后视,在大多数情况下,您可以通过使用捕获组,反转字符串和匹配或构建自己的解析器来解决该限制。
这是一种结合/win/i.test(string) && !/cyg win/i.test(string)
:
document.write(/niw(?!\s+gyc\b)/.test('cyg win'.split("").reverse().join("")));
document.write("<br/>");
document.write(/niw(?!\s+gyc\b)/.test('darwin'.split("").reverse().join("")));
&#13;
注意模式 - niw(?!\s+gyc\b)
- 必须颠倒。