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

标签 javascript jquery regex replace cyrillic

我已经在这个问题上挣扎了很长一段时间,代码对于拉丁字符工作得很好,至于西里尔字母,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/

相关文章:

javascript - 从对象动态创建 JQuery Mobile 页面

regex - 如何按部分grep?

javascript - 如何在javascript进度条加载完成后显示html内容

javascript - 将 Angular CLI 与最新的 AspNetCore Angular 4 Spa 模板结合使用

javascript - Javascript 和 moment.js 中的用户输入日期比较

javascript - 动态文档对象模型 (DOM) 的后退按钮(历史记录)

jquery - .each 不等待函数结束

javascript - Jquery:点击失去焦点后模糊不触发事件

Javascript正则表达式分组替换

python - 正则表达式匹配字符串中的精确模式