我能够在 JS 中匹配并突出显示这个希伯来字母:
var myText = $('#text').html();
var myHilite = myText.replace(/(\u05D0+)/g,"<span class='highlight'>$1</span>");
$('#text').html(myHilite);
但不能突出显示在单词边界处包含该字母的单词:
/(\u05D0)\b/g
我知道JS是bad at regex with Unicode (服务器端是首选),但我也知道我不擅长正则表达式。这是 JS 的限制还是我的语法错误?
最佳答案
我看不懂希伯来语...这个正则表达式是否符合您的要求?
/(\S*[\u05D0]+\S*)/g
您的第一个正则表达式 /(\u05D0+)/g
仅匹配您感兴趣的字符。
您的第二个正则表达式 /(\u05D0)\b/g
仅在您感兴趣的字符是单词边界之前的最后一个(或最后一个重复的)字符时匹配。 ..因此不会匹配单词开头或中间的那个字符。
编辑:
看这个答案
utf-8 word boundary regex in javascript
使用该答案中的信息,我想出了这个正则表达式,这是正确的吗?
/([\u05D0])(?=\s|$)/g
关于javascript - 通过javascript中的正则表达式在单词边界处匹配希伯来语字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15095964/