2012-01-10 27 views
-1

誰能告訴我如何檢查的數量是按以下格式使用正則表達式中的Java腳本如何使JavaScript正則表達式

12-1234567-123 

感謝

+2

HTTP: //www.regular-expressions.info/提供了一個很好的正則表達式介紹。我建議你看看它,並至少了解基礎知識(這裏就是需要的)。 – 2012-01-10 10:04:29

+0

你需要檢查什麼格式? 'dd-ddddddd-ddd'?哪裏'd =數字' – gideon 2012-01-10 10:05:08

回答

6

嘗試以下操作:

/^[\d]{2}-[\d]{7}-[\d]{3}$/ 

這大致相當於

^ = start of string 
[/d] = any number (0-9) 
{n} = exactly n times 
$ = end of string 

這是可用的,像這樣:

var string = '12-1234567-123'; 
var regex = /^[\d]{2}-[\d]{7}-[\d]{3}$/; 
if (regex.test(string)) { 
    //... 
} 
4

一個用於可能的正則表達式:

var format = /^\d{2}-\d{7}-\d{3}$/ 

,並測試:

if(format.test(number)){ 
1

可以使用

/^[0-9]{2}-[0-9]{7}-[0-9]{3}$/ 
0

連字符應該是逃進了正則表達式所以試試這個

/\d{2}\-\d{7}\-\d{3}/ 
+2

連字符只需要在範圍內逃脫 – 2012-01-10 10:06:24

+0

是不是隻有當他們在字符類? – epoch 2012-01-10 10:07:00

+0

是的,但由於我經常與複雜的常規表達式工作,我認爲這是一個很好的做法,尤其是在嵌套的範圍模式,爲了清晰和可讀性的問題,總是要逃避它們 - 無論如何這不是真的這種情況 – fcalderan 2012-01-10 10:09:00

1

假設你的模式是DD-DDDDDDD-DDD(即,在您的示例的實際數字是不是模式的一部分):

var num = "12-1234567-123"; 

if (/^\d{2}-\d{7}-\d{3}$/.test(num)) { 
    alert("Number is valid"); 
} 
0

這是一個非常寬鬆的RegEx .:

/\d{2}-\d{7}-\d{3}/.test("12-1234567-123") 

你應該提供關於邊緣情況的更多細節。

0

使用此正則表達式字符串:

\d{2}-\d{7}-\d{3} 

,並使用正則表達式匹配在JavaScript的方式:

var isValid = /\d{2}-\d{7}-\d{3}/.test(input) 
1

\ d {2} - \ d {7} - \ d {3}以完全符合您引用的案例。

如果需要指定數字(7即最大值)替換\ d {2}與[0-7] {2}等

一個偉大的正則表達式測試儀:RegExp example