3

我可以在 JS 中匹配并突出显示这个希伯来字母:

var myText = $('#text').html();
var myHilite = myText.replace(/(\u05D0+)/g,"<span class='highlight'>$1</span>");
$('#text').html(myHilite);

小提琴

但无法在单词边界突出显示包含该字母的单词:

/(\u05D0)\b/g

小提琴

我知道 JS不擅长使用 Unicode 的正则表达式(首选服务器端),但我也知道我不擅长正则表达式。这是 JS 的限制还是我的语法错误?

4

2 回答 2

2

我看不懂希伯来语...这个正则表达式是否符合您的要求?

/(\S*[\u05D0]+\S*)/g

您的第一个正则表达式/(\u05D0+)/g仅匹配您感兴趣的字符。

您的第二个正则表达式 ,/(\u05D0)\b/g仅当您感兴趣的字符是单词边界之前的最后一个(或最后一个重复的)字符时才匹配......所以这不会与开头或中间的那个字符匹配一个字。

编辑:

看看这个答案

javascript中的utf-8字边界正则表达式

使用该答案中的信息,我想出了这个正则表达式,这是正确的吗?

/([\u05D0])(?=\s|$)/g

于 2013-02-26T18:04:45.250 回答
0

使用以下正则表达式如何使用句子中单词的所有情况:

/^u05D0\s|\u05D0$|\u05D0\s|^\u05D0$/

它实际上使用了 4 个带有 OR 运算符 ('|') 的正则表达式。

  1. 字符串以您的确切单词开头,后跟一个空格
  2. 或者你的字符串有空格+你的单词+空格
  3. 或者你的字符串以空格+你的单词结尾
  4. 或者您的字符串只是确切的单词。
于 2016-03-13T11:25:35.293 回答