我的正则表达式:
/^[\s]*(\'[a-zA-Z0-9_:\.\-\s\\\/\(\)\&\>\<]+(\,+\s*[a-zA-Z0-9_:\.\-\s\\\/\(\)\&\>\<]+)*\'[\s\,]*)*$/
我希望它验证::
'A','B,C','D','E,F','G','H'....... // like wise no specific pattern
这里,“A”可以是一个单词或句子,上面提到的其他字母也是如此。
无效案例::
A','B' // Missing single quote
'A''B' // Missing comma
A',B' // Missing single quote
'A','B // Missing single quote
'A','B', // Extra comma
'A',,'B' // Double comma
,'A','B' // Comma at beginning
我的正则表达式没有捕获其中一些无效的情况。 我应该在正则表达式中更改什么?
我已经在 https://regex101.com/ 上测试过它
最佳答案
您可以使用此正则表达式使问题中显示的所有字符串无效:
/^\s*'[^']*'(?:,'[^']*')*\s*$/gm
假设您的输入中没有转义单引号。
正则表达式详细信息;
^
:开始\s*
:匹配 0 个或多个空格'[^']*'
:匹配单引号字符串(?:,'[^']*')*
:匹配逗号后跟单引号字符串。数学 0 或更多该组\s*
:匹配 0 个或多个空格$
:结束
如果转义单引号即 \'
可以成为输入的一部分,那么您可以使用:
/^\s*'(?:[^'\\]|\\.)*'(?:,'(?:[^'\\]|\\.)*')*\s*$/gm
关于regex - 需要构建一个 REGEX 来放置在 javascript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65624368/