与/ b一起使用时,替换func无法识别西里尔字符

时间:2014-02-20 15:01:43

标签: javascript jquery regex replace cyrillic

我一直在努力解决这个问题很长一段时间,代码在latin字符下运行正常,至于西里尔语,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> "));

任何提示?

1 个答案:

答案 0 :(得分:0)

看来JS并不是很擅长这一点(正如@Rolice在上面的评论中提到的here)。在大多数语言中,您只需要更改区域设置。

你可能需要这样做:

replace(/(^|[^\w\u0400-\u04FF])(\w+)([^\w\u0400-\u04FF]|$)/,
  "$1<span>$2</span>$3");