0

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

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

当我给出两个或更多空格之后它失败了

name, fname lname,  

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

name, fname lname,          

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

4

1 回答 1

0
,\s$

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

要解决这个问题,请尝试

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

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

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

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

这个正则表达式除了不允许逗号在开头和彼此相邻之外没有太多作用。

于 2013-04-04T06:56:32.160 回答