This question already has answers here:
How to ignore acute accent in a javascript regex match?
                                
                                    (4个答案)
                                
                        
                        
                            ignore accent in regex [duplicate]
                                
                                    (3个答案)
                                
                        
                                4年前关闭。
            
                    
当用户尝试验证时,我必须检查文本区域中的禁止单词。
禁止的单词列表存储在jsBlackList数组中,这是到目前为止我的代码的一部分:

var fieldValue = value;
var hasForbiddenWord = false;
for (i = 0; i < jsBlackList.length; i++) {
    var regex = new RegExp("\\b"+jsBlackList[i]+"\\b","gi");
    fieldValue = fieldValue.replace(regex, '***');
    hasForbiddenWord = hasForbiddenWord || fieldValue.match(regex);
}
value = fieldValue;


但是问题是,jsBlackList具有一些带重音符号的字符,而用户可以不带重音进行书写(例如,jsBlackList可以具有“déjà”,并且用户键入了“ deja”,“déja”或“dejà”)。

我如何检查口音是否缺失?

注意:“标记为重复”:重复的问题是“不带重音的正则表达式检查带有重音的文本”,我的问题是“带重音的正则表达式检查带有潜在重音的文本”。

最佳答案

实现此目的的一种方法是我稍微更改您的黑名单:

将所有字符替换为带有重音符号的相同替代字符。

例如:"déjà"到:"d(é|e)j(à|a)"

如果您的黑名单很大,则可能您想自动执行这种替换,但是最后,将黑名单写成这样很方便。

关于javascript - 正则表达式中带有重音符的匹配项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30184646/

10-12 15:36