javascript - 多行文本区域的正则表达式

标签 javascript regex string

我正在尝试验证文本区域。格式应该是我们下面的:

Text description: ${VARIABLE_NAME} \n
Text description: ${VARIABLE_NAME} 

规则:

  1. 文字描述可以包含a-zA-Z0-9空格和“_”
  2. 文字描述需要跟“:”
  3. “:”后面可以没有空格或一个空格
  4. 在“:”之后的字符串需要以“${”开头
  5. “VARIABLE_NAME”只能包含 A-Z 和“_”
  6. “VARIABLE_NAME”和行需要以“}”结束

文本可以有多行,每一行都需要遵循所有 6 条规则。

现在我有这个正则表达式 const regex = new RegExp('[\\w+]:\\$\\{[A-Z]+}$', 'gs'); 只是不确定如何处理多行。

最佳答案

需求可以这样匹配:

  1. [\w ]+ 2. → : 3. → ? 4. → \$\{ 5. → [A-Z_]+ 6. → }

放入 (?: non capturing group (?:\n|$)) + for one or more行。

^(?:[\w ]+: ?\$\{[A-Z_]+}(?:\n|$))+$

参见 this demo at regex101JS demo at tio.run (使用 \r?\n 获得 CRLF 支持)

关于javascript - 多行文本区域的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74185149/

相关文章:

javascript - 如何从 Google 我的商家 API 获取帖子

javascript - 正则表达式匹配不正确

string - 替换字符串 vb6 中除数字以外的所有内容

java - XXYXX 的正则表达式

r - R中按段落分割

c++ - 如何将 ifstream 或字符串输入转换为 char?

javascript - 打字机和设置持续时间

javascript - 获取导致ajax错误的函数名称

javascript - JavaScript 字符串替换中的子匹配组引用是否有分隔符/消歧语法?

javascript - 如何让文本区域在更新时保持滚动到底部