我有一个逗号分隔字母的正则表达式,允许尾随逗号和空格,
var rgx = /^[a-z\sA-Z]+(,[a-z\sA-Z]+)*,\s$/;
return rgx.test(inputStr);
当我提供两个或更多空格后,它失败
name, fname lname,
当我更正与正则表达式匹配的输入时,它也会失败。
name, fname lname,
所以基本上每当正则表达式失败时,即使我更正输入,正则表达式也不匹配输入,我不允许进一步移动。
答案 0 :(得分:0)
,\s$
在输入结束前的逗号后恰好匹配一个空格。最后两个空格会导致它失败。
要解决此问题,请尝试
/^[a-z\sA-Z]+(,[a-z\sA-Z]+)*,\s+$/
如果您希望末尾的逗号和空格是可选的,请尝试
/^[a-z\sA-Z]+(,[a-z\sA-Z]+)*(?:,\s*)?$/
我有点不清楚你在这里尝试做什么。
这个正则表达式并没有做太多的事情,除了在开始时禁止使用逗号并且彼此相邻。