我有一个 JavaScript 正则表达式,它基本上可以找到两个字母的单词。问题似乎在于它将重音字符解释为单词边界。的确,似乎
单词边界(“\b”)是两个字符之间的一个点,它的一侧有一个“\w”,另一侧有一个“\W”(以任意顺序),计算虚构字符字符串的开头和结尾与“\W”匹配。 AS3 RegExp 匹配带有边界类型字符的单词
而且因为
\w 匹配任何字母数字字符(单词字符),包括下划线([a-zA-Z0-9_] 的缩写)。\W 匹配任何非单词字符([^a-zA-Z0-9_] 的缩写) http://www.javascriptkit.com/javatutors/redev2.shtml
明显的重音字符不被考虑在内。这成为像Montréal
. 如果将é
视为单词边界,则al
是两个字母的单词。我已经尝试对允许重音字符的单词边界进行自己的定义,但是将单词边界视为甚至不是字符,我不完全知道如何找到它。
有什么帮助吗?
下面是相关的 JavaScript 代码,它使用正则表达式搜索userInput
和查找两个字母的单词:re_state
var re_state = new RegExp("\\b([a-z]{2})[,]?\\b", "mi");
var match_state = re_state.exec(userInput);
document.getElementById("state").value = (match_state)?match_state[1]:"";