在Javascript中定义适当的RegEx时遇到问题

在Javascript中定义适当的RegEx时遇到问题,javascript,regex,Javascript,Regex,我需要创建一个正则表达式来匹配具有以下模式的进程号,其中###########7.09.0009表示从0到9的数字。以下是我经过研究得出的结论: var regex = new RegExp("^[0-9]{7}[\-][0-9]{2}[\.][0-9]{4}[\.7\.09\.0009]$"); 我还尝试: /^[0-9]{7}-[0-9]{2}\[0-9]{4}\.7\.09\.0009$/ /^[0-9]{7}\\-[0-9]{2}\.[0-9]{4}\\\.7\\.09\\.0009

我需要创建一个正则表达式来匹配具有以下模式的进程号,其中###########7.09.0009表示从0到9的数字。以下是我经过研究得出的结论:

var regex = new RegExp("^[0-9]{7}[\-][0-9]{2}[\.][0-9]{4}[\.7\.09\.0009]$");
我还尝试:

  • /^[0-9]{7}-[0-9]{2}\[0-9]{4}\.7\.09\.0009$/
  • /^[0-9]{7}\\-[0-9]{2}\.[0-9]{4}\\\.7\\.09\\.0009$/
试试这个:

const pattern = /\d{7}\-\d{2}\.\d{4}\.7\.09\.0009/
Regexper是我在编写正则表达式时使用的一个很好的工具,我发现它确实有助于可视化表达式的实际功能

作为参考,您发布了--看起来主要的问题是,您正在使用
[
]
在几个地方定义字符类,而这些地方您根本不需要它们。

尝试以下方法:

const pattern = /\d{7}\-\d{2}\.\d{4}\.7\.09\.0009/
Regexper是我在编写正则表达式时使用的一个很好的工具,我发现它确实有助于可视化表达式的实际功能


作为参考,您发布的--看起来主要的问题是您正在使用
[
]
在一些地方定义字符类,而这些地方您根本不需要它们。

您不必放置
[\.7\.09\.0009]
放在方括号中,否则就意味着一个字符类。那么问题是什么呢?当使用
新的RegExp(String)
你的作品使用锚来声明行的开始和结束。你不必放置
[\.7\.09\.0009]
放在方括号中,否则就意味着一个字符类。那么问题是什么呢?在使用
new RegExp(String)
时,您必须使用双转义反斜杠来声明行的开始和结束。所以我应该执行
const pattern=/\d{7}-\d{2}.\d{4}\.7\.09\.0009/
然后
regex=newregexp(模式)
?也许问题出在其他地方,因为
警报(/\d{7}-\d{2}\.\d{4}\.7\.09\.0009/.test($('numeroprocesso').val())返回false。下面是什么
警报($('#numero processo').val()
返回1111111-11.1111.7.09.009它不应该工作吗?不,
模式
是一个正则表达式文本(),所以你不需要
新的正则表达式(模式)
,你只需要做
模式.测试
。您发布的是预期的行为,但是--“1111111-11.1111.7.09.009”与正则表达式不匹配(它应该以“0009”结尾,像这样:“1111111-11.1111.7.09.0009”),所以我应该执行
const pattern=/\d{7}-\d{2}.\d{4}\.7\.09\.0009/
,然后
regex=new RegExp pattern
?也许问题出在其他地方,因为
警报(/\d{7}-\d{2}\.\d{4}\.7\.09\.0009/.test($('numeroprocesso').val())返回false。下面是什么
警报($('#numero processo').val()
返回1111111-11.1111.7.09.009它不应该工作吗?不,
模式
是一个正则表达式文本(),所以你不需要
新的正则表达式(模式)
,你只需要做
模式.测试
。不过,您发布的是预期行为-“1111111-11.1111.7.09.009”与正则表达式不匹配(它应以“0009”结尾,如下所示:“1111111-11.1111.7.09.0009”)