Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中生成正则表达式_Javascript_Regex - Fatal编程技术网

如何在javascript中生成正则表达式

如何在javascript中生成正则表达式,javascript,regex,Javascript,Regex,有人能告诉我如何使用java脚本中的正则表达式检查以下格式的数字吗 12-1234567-123 谢谢请尝试以下操作: /^[\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

有人能告诉我如何使用java脚本中的正则表达式检查以下格式的数字吗

12-1234567-123
谢谢

请尝试以下操作:

/^[\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)) {
    //...
}

一个可能的正则表达式:

var format = /^\d{2}-\d{7}-\d{3}$/
并测试:

if( format.test( number ) ){
你可以用

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

连字符应该转义到regexp中,因此请尝试以下操作

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

假设您的模式为dd-dddd-ddd(即,示例中的实际数字不属于该模式的一部分):


这是一个非常松散的正则表达式:

/\d{2}-\d{7}-\d{3}/.test("12-1234567-123")
您应该提供有关边缘情况的更多详细信息。

使用此正则表达式字符串:

\d{2}-\d{7}-\d{3}
以及在javascript中使用正则表达式匹配的方法:

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

\d{2}-\d{7}-\d{3}与您引用的案例完全匹配

如果需要指定数字(即最大值7),请将\d{2}替换为[0-7]{2}等


一个优秀的regexp测试人员:

很好地介绍了正则表达式。我建议你看一看,至少学习一些基础知识(这是这里所需要的一切)。你需要检查什么格式<代码>dd-dd-ddd-ddd?其中
d=number
连字符只需要在范围内转义,不是只有在字符类中才需要转义吗?是的,但因为我经常使用复杂的正则表达式,所以我认为总是转义它们是一种很好的做法,尤其是在嵌套范围模式上,只是为了清晰和可读性的问题——不管怎么说,事实并非如此——只是出于好奇,什么是“嵌套范围”?
var isValid = /\d{2}-\d{7}-\d{3}/.test(input)