簡體   English   中英

Javascript 正則表達式匹配名稱和標題

[英]Javascript regex match for name with title

我試圖創建 JavaScript 正則表達式,其名稱為 John Son 先生。 這個名字可以有很多頭銜,比如Mr. Miss. Mrs. Er. Dr. Er。 等等我寫了一個正則表達式

var re = /(\b(Mr\.|Mrs\.|Ms\.|Dr\.|Er\.){1}[a-zA-Z])/i; 獲取有效名稱。 正則表達式的錯誤在於,如果標題出現兩次像 Mr.Mr. 一樣,它會返回 true。 約翰遜

我在標題后指定了量詞 {1}。 但如果標題在名稱之前出現兩次,它仍然返回 true。 你能說出這個正則表達式的錯誤是什么嗎?

每個說提供的正則表達式沒有任何問題。 由於先生的存在,正則表達式正在匹配給定的字符串。第二個稱呼無關緊要,並且被正則表達式忽略,因為第一個稱呼與正則表達式匹配。

您可以使用以下鏈接在線測試您的正則表達式 regex101.com 並清楚地了解您的正則表達式如何匹配。

如果您希望匹配失敗,如果稱呼不止一次,那么您將需要嘗試其他方法。 您可以嘗試的示例僅在稱呼恰好出現一次時才與名稱匹配/(\b(Mr\.|Mrs\.|Ms\.|Dr\.|Er\.){1}^[\w\s]*$)/i

上面的正則表達式僅將單詞和空格視為稱呼之后的有效字符,因此 a 的存在. 這是典型的稱呼打破了正則表達式。 可能有其他方法可以達到相同的結果,所以最好閱讀正則表達式(這里是一個備忘單)並嘗試不同的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM