regex - 需要构建一个 REGEX 来放置在 javascript 中

标签 regex

我的正则表达式:

/^[\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

假设您的输入中没有转义单引号。

RegEx Demo

正则表达式详细信息;

  • ^:开始
  • \s*:匹配 0 个或多个空格
  • '[^']*':匹配单引号字符串
  • (?:,'[^']*')*:匹配逗号后跟单引号字符串。数学 0 或更多该组
  • \s*:匹配 0 个或多个空格
  • $:结束

如果转义单引号即 \' 可以成为输入的一部分,那么您可以使用:

/^\s*'(?:[^'\\]|\\.)*'(?:,'(?:[^'\\]|\\.)*')*\s*$/gm

关于regex - 需要构建一个 REGEX 来放置在 javascript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65624368/

相关文章:

用于数学运算的 PHP 正则表达式

regex - 如何从正则表达式子模式中排除一组替代方案?

jquery - 如何在 jQuery 中对多行文本 4x35 进行正则表达式验证

javascript - 在正则表达式方法中使用变量,无法使其工作

javascript - 正则表达式: Help Matching a number less than 24

python - Django 过滤器不排除否定前瞻正则表达式的结果

javascript - 使用正则表达式从字符串中提取数字部分有效

javascript - 如何识别脚本中的正则表达式是否为空?

regex - 在 mac 上用 sed 中的字符串替换换行符

c# - 操作字符串 : Removing special characters - Change all accented letters to non accented