Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript REGEXP智能额外字母检测_Javascript_Php_Regex - Fatal编程技术网

Javascript REGEXP智能额外字母检测

Javascript REGEXP智能额外字母检测,javascript,php,regex,Javascript,Php,Regex,我正在使用正则表达式来匹配单词,即使用户输入有一些额外的或更改的字母。例如,如果用户输入为pgonemy regexp仍应匹配phone,或者如果用户输入为phini,则它也应匹配phone。我不知道怎么做 我尝试了以下方法,但它与我的一些额外单词相匹配: [[[::]] 您可以做的是定义您希望用户使用原子组所犯的错误: ^(?>phone|phine|pgone|phoni|ghone.|p?one|p.one)$ 你可以添加一些其他的单词和模式来匹配其他可能的打字错误,但我不认为这应

我正在使用正则表达式来匹配单词,即使用户输入有一些额外的或更改的字母。例如,如果用户输入为
pgone
my regexp仍应匹配
phone
,或者如果用户输入为
phini
,则它也应匹配
phone
。我不知道怎么做

我尝试了以下方法,但它与我的一些额外单词相匹配:


[[[::]]

您可以做的是定义您希望用户使用原子组所犯的错误:

^(?>phone|phine|pgone|phoni|ghone.|p?one|p.one)$

你可以添加一些其他的单词和模式来匹配其他可能的打字错误,但我不认为这应该是解决问题的方法。您可能应该按照Paul Crovella的建议计算Levenshtein距离,以检查键入的字符串与正确字符串之间的距离

这最好通过将可接受的拼写错误映射到“正确”单词或将编辑距离映射到目标单词的度量来实现。对于您的目标,regex方法将迅速变得难以管理。非常感谢!:*