我正在使用一个小的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个很好。前两个单词的样式为橙色和粗体。但是,如果第二个单词包含像äö这样的变音符号,那么正则表达式会破坏这个角色,看起来这个单词会在那里结束。
你能帮我解决一个更安全的解决方案吗?
亲切的问候
答案 0 :(得分:1)
\w
is a shorthand for [A-Za-z0-9_]
,不包含变音字符。如果您想要包含其他范围,则需要创建一组明确的可接受字符。
答案 1 :(得分:1)
试试这个:
/\S+\s\S+/
\ S匹配非空白字符。
答案 2 :(得分:0)
是的,这是Javascript正则表达式中非英语字符的常见问题。它们不会被\w
识别。您必须分别为每个特殊字符指定unicode表示\uXXXXX