【发布时间】:2013-02-15 21:01:59
【问题描述】:
我的网站上有一个脚本,它突出显示包含通过输入文本字段搜索的单词的 div。每当我搜索以 æ、ø 和 å(丹麦字符)开头的单词时,它都会失败,但如果它们位于单词的其他任何地方,则不会。
我做了一个jsfiddle:
rx = new RegExp("\\b(" + quest.join("|") + ")", "gi")
如果您搜索 hello,您会看到它突出显示了前 2 个 div,因为它们都包含 hello。但是如果你搜索“ælle”,它不会突出显示包含的 div。
希望有人对此有解决方案 - 提前谢谢您! (:
【问题讨论】:
-
我无法让你的小提琴工作,但如果你还没有尝试过,请尝试将你的正则表达式与
\W结合使用:) -
嗯,这很奇怪。您是否按下了搜索按钮,而不是直接输入?我刚刚意识到它与输入无关。这在正则表达式中看起来如何?
-
字边界
\b是基于\w定义的,它只考虑US-ASCII中的字符(确切地说是[0-9a-zA-Z_])。 JS 正则表达式几乎不支持 Unicode,除了疯狂和乏味的字符范围。 -
@JensAhlstenHerlevsen 我只是烂透了,它按预期工作。
-
@nhahtdh 关于
\b基于 ASCII 的行为是正确的,奇怪的是它在从正则表达式中删除 wordboundary 后也找不到“Ælle”。
标签: javascript regex character