javascript - 正则表达式模式重复

标签 javascript regex

正则表达式新手在这里,我为我的输入创建了一个正则表达式验证器,我正在尝试验证以下内容:

{ word } //valid
{ word } ; { word } //also valid

所以我想到了这个:

^[\s]*\{[a-zA-z\s]*\}[\s]*$|^[\s]*\{[a-zA-z\s]*\}[\s]*\;[\s]*[\s]*\{[a-zA-z\s]*\}[\s]*$

它可以工作,但问题是之后我无法添加任何东西。我想根据需要重复“;{word}”部分。我该怎么做?

最佳答案

你可以使用

/^\s*{\s*[a-zA-Z]+\s*}\s*(?:;\s*{\s*[a-zA-Z]+\s*}\s*)*$/

参见 regex demo

详情

  • ^ - 字符串的开始
  • \s*{\s*[a-zA-Z]+\s*}\s* - { 包含 0+ 个空格,1+ ASCII 字母,然后是包含 0+ 个空格的 }
  • (?: - 非捕获组的开始:
    • ; - 一个分号
    • \s*{\s*[a-zA-Z]+\s*}\s* - { 包含 0+ 个空格,1+ ASCII 字母,然后是包含 0+ 个空格的 }
  • )* - 零次或多次
  • $ - 字符串结尾。

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

相关文章:

javascript - 异步函数 - 数据函数应该返回一个对象?

javascript - 如何让 addEventListener 与选择标签一起工作

php - 使用 PHP(正则表达式)解析内容占位符

php - 正则表达式转义规则 - Perl 兼容的正则表达式

javascript - 复合索引/子数组搜索

javascript - socket.io聊天示例代码中fn()的含义

javascript - 即时重新包含模块

Java : Replace \"with " and\/with/

.net - 根据 Regex.Matches MatchCollection 替换字符串中的内容

java - 如何从java字符串中删除控制字符?