我正在尝试验证文本区域。格式应该是我们下面的:
Text description: ${VARIABLE_NAME} \n
Text description: ${VARIABLE_NAME}
规则:
- 文字描述可以包含a-zA-Z0-9空格和“_”
- 文字描述需要跟“:”
- “:”后面可以没有空格或一个空格
- 在“:”之后的字符串需要以“${”开头
- “VARIABLE_NAME”只能包含 A-Z 和“_”
- “VARIABLE_NAME”和行需要以“}”结束
文本可以有多行,每一行都需要遵循所有 6 条规则。
现在我有这个正则表达式 const regex = new RegExp('[\\w+]:\\$\\{[A-Z]+}$', 'gs');
只是不确定如何处理多行。
最佳答案
需求可以这样匹配:
- →
[\w ]+
2. → : 3. → ? 4. → \$\{ 5. → [A-Z_]+ 6. → }
放入 (?:
non capturing group (?:\n|$))
+
for one or more行。
^(?:[\w ]+: ?\$\{[A-Z_]+}(?:\n|$))+$
参见 this demo at regex101或 JS demo at tio.run (使用 \r?\n
获得 CRLF 支持)
关于javascript - 多行文本区域的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74185149/