javascript string.replace在德国Umlaute失败

时间:2012-10-11 14:07:33

标签: javascript jquery regex

我正在使用一个小的Javascript / Jquery函数将元素注入到某些文本中,如果还没有这样的元素。

代码如下所示:

$(document).ready(function () {
$(function () {
    $(".replaceText").html(function (i, text) {
        if ($('.replaceText > span.dbOrange').length) {
            return;
        }
        else {
            return text.replace(/\w+\s\w+/, function (match) {
                return '<span class="dbOrange">' + match + '</span>';
            });
        }
    });
});

});

这在10个案例中有9个很好。前两个单词的样式为橙色和粗体。但是,如果第二个单词包含像äö这样的变音符号,那么正则表达式会破坏这个角色,看起来这个单词会在那里结束。

你能帮我解决一个更安全的解决方案吗?

亲切的问候

3 个答案:

答案 0 :(得分:1)

\w is a shorthand for [A-Za-z0-9_],不包含变音字符。如果您想要包含其他范围,则需要创建一组明确的可接受字符。

答案 1 :(得分:1)

试试这个:

/\S+\s\S+/

\ S匹配非空白字符。

答案 2 :(得分:0)

是的,这是Javascript正则表达式中非英语字符的常见问题。它们不会被\w识别。您必须分别为每个特殊字符指定unicode表示\uXXXXX