限制正規表示式中的字元長度
使用正規表示式符合字串中的特定模式時,通常需要限製字元長度以確保精確匹配。在提供的範例中:
var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>()?""']*$/
此正規表示式匹配由字母或數字組成的任何字串,沒有任何字元長度限制。嘗試使用 [^$%^&*;:,()?""']*${1,15} 將字元長度限制為 15 會導致錯誤。
要解決此問題並強制執行字符限制,請使用錨定在字符串開頭的前瞻:
^(?=.{1,15}$)...
此前瞻檢查字符串是否匹配1 到15字符,但不包括末尾的換行符(由於$)。它限制整個輸入字串的長度。
在末尾使用量詞,例如[^$%^&*;:,()?""']{1,15 },只會限制第二個字元類別的長度,而不是整個字串。
對於可能包含換行符序列的字串,使用 [sS] 匹配任何字元:
^(?=.[\s\S]{1,15}$)...
這確保字元長度限制適用於整個字串,無論換行符如何。
以上是如何限制正規表示式中的字元長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!