2

如果还没有这样的元素,我正在使用一个小的 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 个都可以正常工作。前两个词的样式为橙色和粗体。但是,如果 a 第二个单词包含像 ä ö ü 这样的元音变音符号,则正则表达式会在该字符处中断,并且看起来该单词会在那里结束。

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

亲切的问候

4

3 回答 3

1

\w是 的简写[A-Za-z0-9_],不包含变音符号。如果您希望包含其他范围,则需要创建一组明确的可接受字符。

于 2012-10-11T14:09:53.720 回答
1

试试这个:

/\S+\s\S+/

\S 匹配非空白字符。

于 2012-10-11T17:42:06.903 回答
0

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

于 2012-10-11T14:09:22.847 回答