正则表达式无法正确输入

时间:2013-04-04 06:54:43

标签: javascript regex

我有一个逗号分隔字母的正则表达式,允许尾随逗号和空格,

var rgx = /^[a-z\sA-Z]+(,[a-z\sA-Z]+)*,\s$/;
    return rgx.test(inputStr);

当我提供两个或更多空格后,它失败

name, fname lname,  

当我更正与正则表达式匹配的输入时,它也会失败。

name, fname lname,          

所以基本上每当正则表达式失败时,即使我更正输入,正则表达式也不匹配输入,我不允许进一步移动。

1 个答案:

答案 0 :(得分:0)

,\s$

在输入结束前的逗号后恰好匹配一个空格。最后两个空格会导致它失败。

要解决此问题,请尝试

/^[a-z\sA-Z]+(,[a-z\sA-Z]+)*,\s+$/

如果您希望末尾的逗号和空格是可选的,请尝试

/^[a-z\sA-Z]+(,[a-z\sA-Z]+)*(?:,\s*)?$/

我有点不清楚你在这里尝试做什么。

这个正则表达式并没有做太多的事情,除了在开始时禁止使用逗号并且彼此相邻。