2015-04-28 65 views
1

我需要使用jquery/javascript正則表達式驗證驗證以下格式。數字,短劃線和方括號的正則表達式驗證

它是利用代碼在java中的正則表達式來完成:

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

但現在在客戶端需要使用Javascript/jQuery的。

下面是樣品:

1) 1 [123] 1234-5678 
2) 1[123] 1235-5678 
3) 1[123]1236-5678 
4) 1 [123]1237-5678 
5) 1 [123] 12385789 
6) 1[123]12341678 
7) 1 [123]12345678 
8) 1[123] 1234-5678 
9) [123] 1234-5678 
10) [123]1234-5678 
11) [123]12345678 
12) [123] 12345678 

及其數目的基本組合,方括號中,破折號, 這裏數&括號必須存在,但是破折號( - )可用可不用。

只有數&方括號中可以允許的,任何幫助表示讚賞沒有別的字符

+0

所以有什麼問題 –

+0

有什麼可以爲正則表達式使用JavaScript/jQuery的 –

+0

OK確認,其實我現在需要的是在驗證客戶端,而不是Java的正則表達式。 –

回答

0

在JS中,您可以使用RegExp對象字面值,這意味着您不需要轉義反斜槓字符。字面甲RegExp對象可以通過圍繞由兩個正斜槓字符正則表達式表達式創建:

原始正則表達式:

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

分配一個變量在JavaScript中RegExp對象:

var myRegex = /(\d{1,2})?\s?\[\d{3}\]\s?\d{4}-?\d{4}/; 

不限你想添加到正則表達式(g,i,m,y)的標誌應該直接在終止正斜槓之後。例如:

/(\d{1,2})?\s?\[\d{3}\]\s?\d{4}-?\d{4}/gm 

做這將是把你原來的正則表達式字符串形式,並將其傳遞到一個RegExp構造的另一種方式,但這只是推薦使用動態正則表達式,而不是靜態的:

var myRegex = new RegExp('(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}'); 

您還可以選擇性地將第二個參數傳遞給此構造函數,該構造函數接收一串標誌。

有關創建和使用RegExp對象的更多文檔可以參見here

0

JavaScript使用實際的RegExp而不是字符串。您可以使用RegExp類使這爲正則表達式:

var regex = new RegExp("(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}"); 

regex現在握着你的正則表達式。使用這個,你可以交換正則表達式,而不必修改它們。 Javascript還支持RegEx,並在前面輸入/,並結束。

var regex = /(?:This\sIs\sMy\sRegex)/flags;