美好的一天。我想检测<a>
标记中的网址字符串
<a href="http://virtualweb.test/en/?post_type=tribe_events&p=3642">Link</a>
是否与模式匹配:?post_type=tribe_events&p=####
(#### = 4位数字)
我正在编写一些Jquery代码来检测表达式,但是控制台抛出错误:
无效的正则表达式:/ ^(?)post_type = tribe_events&p = ^(d {4})/: 无效的组
var str = $(a).attr("href");
var regexEx = /^(?)post_type=tribe_events&p=^(d{4})/;
var ok = regexEx.exec(str);
console.log(ok);
我不擅长正则表达式,所以如果有帮助我会很感激。
答案 0 :(得分:1)
正则表达式中有几个问题。
^
,在您的情况下,您的字符串实际上并不是从?
开始,而是在字符串中间。?
,因为它在正则表达式中具有特殊含义,即零个字符或一个字符出现一次。^
之后删除第二个p=
,\d
而不是d
来代表数字。?
和\d{4}
分组。您更正的正则表达式变为
\?post_type=tribe_events&p=\d{4}
答案 1 :(得分:0)
如果测试确实是您想要的,我想正确的语法应该是:
/^\?post_type=tribe_events&p=\d{4}/