我希望有一个正则表达式,不允许使用逗号之后的空格,但应允许逗号之前的空格。 逗号也应该是可选的。
我当前的正则表达式:
^[\w,]+$
我尝试在其中添加\s
并尝试^[\w ,]+$
,但这也允许逗号之后的空格!
这应该是测试用例:
Hello World // true
Hello, World // false (space after comma)
Hello,World // true
Hello,World World // false
任何帮助将不胜感激!
答案 0 :(得分:6)
以下正则表达式在逗号后不允许空格
^[\w ]+(?:,[^ ]+)?$
<强>解释强>
^
开始一行。[\w ]
匹配一个字符字符或空格一次或多次。(?:)
这称为非捕获组。这个组内的任何东西都不会被捕获。(?:,[^ ]+)?
逗号后跟任何不是空格的字符一次或多次。通过在非捕获组之后添加?
,这会告诉正则表达式引擎它是可选的。$
行尾答案 1 :(得分:1)
您可以使用此正则表达式。
^[\w ]+(?:,\S+)?$
<强>解释强>:
^ # the beginning of the string
[\w ]+ # any character of: word characters, ' ' (1 or more times)
(?: # group, but do not capture (optional):
, # ','
\S+ # non-whitespace (all but \n, \r, \t, \f, and " ") (1 or more times)
)? # end of grouping
$ # before an optional \n, and the end of the string
答案 2 :(得分:1)
我想这取决于你想要做什么,如果你只是测试语法错误的存在,你可以使用类似的东西。
var patt = / ,/g; // or /\s,/g if you want
var str = 'Hello ,World ,World';
var str2 = 'Hello, World, World';
console.log( patt.test(str) ) // True, there are space before commas
console.log( patt.test(str2) ) // False, the string is OK!
前瞻是有用的,但如果不了解基础知识就很难理解。
Use this site,它非常适合可视化您的正则表达式