我已经在这个问题上挣扎了很长一段时间,代码对于拉丁字符工作得很好,至于西里尔字母,jquery根本无法识别它。
$('p').each(function() { var $this = $(this);
$this.html($this.text().replace(/\b(\w+)\b/g, "<span>$1</span>"));
});
我也尝试过以下代码,但由于某种原因,jQuery 会跳过每个第二个单词并且不会换行:(
$(this).html($(this).text().replace(/\s([a-zA-Zа-яА-ЯёЁ]+)\s/g, " <span> $1 </span> "));
有什么提示吗?
最佳答案
看来 JS 对此不太擅长(如上面评论中 @Rolice 所指出的 here )。在大多数语言中,您只需更改区域设置。
你可能需要做这样的事情:
replace(/(^|[^\w\u0400-\u04FF])(\w+)([^\w\u0400-\u04FF]|$)/,
"$1<span>$2</span>$3");
关于javascript - 与/b 一起使用时,替换函数无法识别西里尔字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21911549/