gpt4 book ai didi

javascript - 用逗号分隔的正则表达式重复模式

转载 作者:行者123 更新时间:2023-11-28 04:59:12 25 4
gpt4 key购买 nike

我在 Javascript 中有以下正则表达式:

/\w{1,}\s*\w{1,}/  

这会检查字符串是否至少有两个单词,每个单词都大于 1 个字符。

例如-

asd fgh - Valid  
a b d dfd - Valid
xscxs - Invalid

我现在有一个新的要求,我试图实现它,但无法正确实现。

新要求:能够拥有与以前相同类型的输入的逗号分隔列表。不能以逗号结尾。每一项都必须符合上述规则。
如果没有逗号那么也有效。
此外,所有字符都是字母,没有数字/特殊字符

Valid:  HOH vfdffd,dsfds dfgd,UIU fgfd  
Valid: JOI JOIO
Invalid: QASW fgdfg,
Invalid: sdfds,1234 dfgdfg
Invalid: JKJ,ABCD

最佳答案

您可以将第一个要求的模式指定为 [a-zA-Z]+(?:\s[A-Za-z]+)+ 以匹配 1+ 个字母字符和然后匹配 1+ 个空格序列 + 一个或多个单词字符,然后在另一组中用逗号重复该模式:

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

请参阅regex demo (演示中所有 \s 均替换为空格,因为输入是一个多行字符串)。

如果允许多个空格,请将 \s 替换为 \s+

详细信息:

  • ^ - 字符串开头
  • [a-z]+ - 1+ 个字母
  • (?:\s[a-z]+)+ - 1 个或多个序列(即必须有空格)
    • \s - 空格(添加 + 以匹配 1 个或多个出现情况)
    • [a-z]+ - 1 个以上字母
  • (?:,[a-z]+(?:\s[a-z]+)+)* - 零个或多个序列(即逗号是可选的)
    • , - 逗号
    • (?:\s[a-z]+)+ - 见上文
  • $ - 字符串结尾。

关于javascript - 用逗号分隔的正则表达式重复模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42294787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com