驗證用戶輸入時,我使用正則表達式來檢查每行的開頭(實際上包含的內容是否會跳過雙空格),總會有一個在任何其他字符之前設置括號內的內容。有多種變化左右擺弄之後,這裏就是我想出的最簡單的版本,沒有檢查每行的第一個單詞是否包含特定字符
var regex = new RegExp('^\\([^)]+\\).*?$', 'm');
預期的結果是再次進行測試,如情況屬實:
(測試)的任何\ N(另一個測試)再次...無論
或
(測試)whateve河\ n \ n(另一個測試)再次...無論
如果字符串中的任何行不以(
開始,有括號內的至少一個字符,然後由)
面前關閉括號後的任何數量的內容,都應該失敗;唉,我上面的表達會忽略任何檢查第一行的任何行。如果我的格式不正確,例如(test) whatever\nthis) should return false
,它仍會在.test()
上返回true。
一些有效的匹配可能包括:
(測試)通過
(測試)合格\ n(也)通過
(再次)通過\ n \ n(也)通\ n(我們)可以整天這樣做
(There)可以\ n(是)\ n(新行)的任何\ n(金額)爲\ n \ n \ n \ n(長)每個\ n(行)有\ n(內容)開始\ n(帶有一套)括號。 \ n(有)\ n(有)\ n(有)唯一的\ n(例外)是\ n(嚴格執行)的\ n(不是)\ n(不)打開和關閉括號)在每行
,應該在一個.test()
返回false一些無效的比賽開始時包括:
都能跟得上
也都能跟得上
(無右括號=都能跟得上
都能跟得上對於上述對面)
(沒錯至今)實際上.... \ nNope
\ n個大碗(沒了!)
)猜測?
()否良好
也許'/^(?:\([^)]+\).*[\r\n]*)+ $ /'?或['/^\([^)]+\).*(?:[\r\n]+\([^)]+\).*)*$/'](https://regex101。 COM/R/cP4zW7/1)。我建議使用文字正則表示法。 –
還是你的意思['^(?!\([^)] + \))。*'](https://regex101.com/r/cP4zW7/2)? –
添加了一些通過/失敗的例子。 – Scott