使用正则表达式进行文本匹配只匹配没有空格的单词

时间:2015-04-13 03:34:43

标签: javascript jquery html regex arabic

我需要匹配关键字并将这些关键字替换为<a /> html或<span></span>标记。如果我使用以下正则表达式\w

,我正在处理的脚本只匹配没有空格的单个单词
text = text.replace(
            /([\u0600-\u06ff\w]+)([^\u0600-\u06ff]+)()?/g,
        replacer);

如果我使用以下正则表达式与\s选项匹配,那么它匹配用ASCII包裹的所有单词,例如, "'等。在小提琴示例中,您将请注意,它会与第一段中的所有关键字匹配,并以,

分隔
   text2 = text2.replace(
        /([\u0600-\u06ff\s]+)([^\u0600-\u06ff]+)()?/g,
    replacer);

如何修改此脚本以使其适用于组合并仅匹配精确的单词。我已经工作了几天我尝试了几个选项,但似乎没有工作,我尝试突出插件,也有自己的阿拉伯语问题。 此处https://stackoverflow.com/questions/29533793/highlighting-of-text-breaks-when-for-either-english-or-arabic

也提出了突出显示插件的问题

正则表达匹配:http://jsfiddle.net/u3k01bfw/13/

1 个答案:

答案 0 :(得分:0)

有可能将()?更改为(?=\s|$)(将匹配限制为空格或字符串结尾)可以解决您的问题:

text = text.replace(
        /([\u0600-\u06ff\w]+)([^\u0600-\u06ff]+)(?=\s|$)/g,
    replacer);

text2 = text2.replace(
        /([\u0600-\u06ff\s]+)([^\u0600-\u06ff]+)(?=\s|$)/g,
    replacer);

请检查http://jsfiddle.net/u3k01bfw/17/