2012-01-10 58 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