【问题标题】:Replace func doesn't recognize cyrillic character when used with /b与 /b 一起使用时,替换 func 无法识别西里尔字符
【发布时间】:2023-03-26 16:53:02
【问题描述】:

我一直在为这个问题苦苦挣扎,代码在拉丁字符上运行良好,至于西里尔文,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> "));

有什么提示吗?

【问题讨论】:

标签: javascript jquery regex replace cyrillic


【解决方案1】:

看起来 JS 在这方面不太擅长(正如上面 cmets 中 @Rolice 所指出的 here)。在大多数语言中,您只需要更改语言环境。

您可能必须这样做:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    相关资源
    最近更新 更多