簡體   English   中英

Javascript中具有正則表達式的無效組

[英]Invalid Group with Regex Expression in Javascript

我四處尋找我的問題的解決方案,但我看不出我的正則表達式的哪一部分無效(javascript說我有一個無效的組)。 我想我正在使用javascript的正則表達式引擎不支持的東西?

我正在嘗試驗證以下美國電話號碼:

555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555

我的驗證表達是:

1?[\s-]?\(?(\d{3})\)?[\s-]?(\d{3})[\s-]?(\d{4})

有小費嗎?

/1?[\\s-]?\\(?(\\d{3})\\)?[\\s-]?(\\d{3})[\\s-]?(\\d{4})/作品很好的JavaScript。

但是,我的水晶球說你正在使用一個你傳遞給RegExp構造函數的字符串:

new RegExp("1?[\s-]?\(?(\d{3})\)?[\s-]?(\d{3})[\s-]?(\d{4})")

這是錯誤的,因為反斜杠在字符串中有特殊含義,所以

"1?[\s-]?\(?(\d{3})\)?[\s-]?(\d{3})[\s-]?(\d{4})"

相當於

"1?[s-]?(?(d{3}))?[s-]?(d{3})[s-]?(d{4})"

(因為"\\(""(" )。那會抱怨(?(

解決方案:使用正則表達式文字( /.../ )或在字符串中加倍反斜杠。

你試過下面的嗎?

^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$

暫無
暫無

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

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