簡體   English   中英

有沒有一種方法可以使用正則表達式測試一個字符串,只有當 ( & ) 都至少發生一次時才為真? 正則表達式必須確保兩者都被使用

[英]Is there a way I can test a string using regex to be true only if ( & ) both happen at least once? The regex has to make sure both are used

在這種情況下,它返回 true,但我需要它返回 false。 我嘗試添加 [()]{0,1} 但我認為它只指一個“(或)”有沒有辦法我可以做 [(&)]{0,1} 以便“(”和“ )" 兩者都必須至少發生一次。 謝謝

 function telephoneCheck(str) { const regex = /^[1]{0,1}[-\s]?[(]?\d{3}[-)\s]?[\s]?[\d]{3}[-\s]?[\d]{4}$/g return regex.test(str) } console.log(telephoneCheck("1 555)555-5555"));

鑒於您的示例涉及電話號碼,我將假設您只是在一個特定位置尋找一對括號。 您可以使用交替來檢查這一點:

/^1?[-\s]?(?:\(\d{3}\)|\d{3})[-\s]?\d{3}[-\s]?\d{4}$/g

關鍵是以(?:開頭的非捕獲組,它將選擇用括號括起來的三位數序列或不帶括號的三位數序列。我還簡化了您的正則表達式的其余部分,因為您不需要使用這么多括號。

暫無
暫無

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

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