可能重複:
Regular expression for SSN and phone number不允許SSN和電話號碼的字符串正則表達式
^(?!.*(\\d{16})|.*(\\d{9})|.*(\\d{3}-\\d{2}-\\d{4})|.*(\\d{3}-\\d{3}-\\d{3})).*
以上regex
不允許在字符串中SSN和電話號碼。但它也不允許\n
(輸入字符)。如果用戶敲擊輸入兩行文字,則輸入regex
失敗。
可能重複:
Regular expression for SSN and phone number不允許SSN和電話號碼的字符串正則表達式
^(?!.*(\\d{16})|.*(\\d{9})|.*(\\d{3}-\\d{2}-\\d{4})|.*(\\d{3}-\\d{3}-\\d{3})).*
以上regex
不允許在字符串中SSN和電話號碼。但它也不允許\n
(輸入字符)。如果用戶敲擊輸入兩行文字,則輸入regex
失敗。
默認情況下,句點(.
)與換行符不匹配。如果您無法配置DOTALL
模式,請按照this SO answer,考慮以[\s\S]*
(任意數量的非空白字符)而非.*
結尾。
謝謝。有用。 – user679526
如果用戶輸入文本新行,然後輸入123-123-123。即使123-123-123格式無效,此內容仍被驗證爲正確。 – user679526
@ user679526你是否修正了'。*'的每一個外觀,而不是最後一個?你複雜的否定斷言意味着你必須在替換時非常冗長。或者,尋找一種方式來說「如果你發現這個正則表達式,字符串是無效的」,這可能會更簡單和更容易維護。 –
我需要一個答案,所以我轉發了這個問題。它有什麼問題。 – user679526
什麼是錯誤的是你重複你的「問題」。 Stack Exchange社區嚴重地對有意複製的內容皺眉。編輯你的第一個問題,使其成爲一個連貫的問題,它可能會重新打開。 – 2013-01-14 17:31:37
哦,順便說一下,刪除自己的問題也會觸發問題禁令。 – 2013-01-14 17:32:09