我正在嘗試驗證文本區域。格式應該是我們以下:
Text description: ${VARIABLE_NAME} \n
Text description: ${VARIABLE_NAME}
規則:
- 文字描述可以包含a-zA-Z0-9空格和“_”
- 文字說明需跟“:”
- ":" 后面可以不加空格或加一個空格
- ":" 之后的字串需要以 "${" 開頭
- “VARIABLE_NAME”只能包含 AZ 和“_”
- “VARIABLE_NAME”和行需要以“}”結尾
文本可以有多行,每行都需要遵循所有 6 條規則。
現在我有這個正則運算式const regex = new RegExp('[\\w ]:\\$\\{[A-Z] }$', 'gs');
只是不知道如何處理多行。
uj5u.com熱心網友回復:
需求可以匹配如下:
- →
[\w ]2. → :3. → ?4. → \$\{5. → [A-Z_] 6. →}
放入 一行或多行的(?: 非捕獲組 (?:\n|$)) 。
^(?:[\w ] : ?\$\{[A-Z_] }(?:\n|$)) $
請參閱regex101 上的這個演示或 tio.run 上的JS 演示(\r?\n用于CRLF支持)
uj5u.com熱心網友回復:
您可以使用
/^[\w ] :[^\S\r\n]?\${[A-Z_] }(?:\r?\n[\w ] :[^\S\r\n]?\${[A-Z_] })*$/
請參閱正則運算式演示。詳情:
^- 字串的開始[\w ]- 一個或多個字母數字/下劃線/空格字符:- 一個冒號[^\S\r\n]?- 一個可選的水平空白\${- 一個${字串[A-Z_]- 一個或多個大寫 ASCII 字母或下劃線}- 一個}字符(?:\r?\n[\w ] :[^\S\r\n]?\${[A-Z_] })*- CRLF 或 LF 行結束序列的零次或多次重復,遵循上述模式$- 字串結束。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/519986.html
上一篇:正則運算式到URL中的雙連字符
