Regex 注册Ex以匹配a?或Unicode%3d
我有一个与url查询字符串中的问号匹配的表达式,我发现自己需要扩展该表达式,以适应我试图读取的url包含问号%3d的unicode等价物的情况 表达式是Regex 注册Ex以匹配a?或Unicode%3d,regex,Regex,我有一个与url查询字符串中的问号匹配的表达式,我发现自己需要扩展该表达式,以适应我试图读取的url包含问号%3d的unicode等价物的情况 表达式是 var regexS = "[\\?&]" + name + "=([^&#]*)"; 从我对RegEx所知甚少的情况来看,我认为这可能有效 var regexS = "[\\?&]|[\\%3d&]" + name + "=([^&#]*)"; 感谢您的帮助假设Javascript用于字符串转义 在
var regexS = "[\\?&]" + name + "=([^&#]*)";
从我对RegEx所知甚少的情况来看,我认为这可能有效
var regexS = "[\\?&]|[\\%3d&]" + name + "=([^&#]*)";
感谢您的帮助假设Javascript用于字符串转义 在
“[\\?&][\\%3d&][\\%3d&]”+name+“=([^&\\\]*)”
中,请注意
- 连接(
)优先于交替(abc
)和a | b | c
表示“百分比、3、d或符号”(字符类)[\\%3d&]
的转义形式是%3F,而不是%3D.%3D表示?
。看=
- 第一个字符类中的符号与
中的www.example.com?q1=v1&q2=v2
匹配。也许您也希望允许转义符号。它的转义形式是%26
“([\\?&]\\%3f\\%26)”+name+“=([^&\\]*)”
还要注意的是,
?
在字符类中没有特殊意义,也不需要转义:“([?&]|%3f |%26)”+name+“=([^&&]*)”
如果url包含%3d
,则(通常)不应将其解释为查询分隔符。这就是它被转义的原因。请注意%3d
表示=
<代码>&是%3f
感谢您的回复。理解regEx的人总是让我惊讶不已。我是usinghttp://www.nvcc.edu/home/drodgers/ceu/resources/test_regexp.asp 要测试表达式并使用([?&]\\%3d&)测试www.mydomain.com?q=123测试为true,但www.mydomain.com%3dq=123测试为false。对%3f的观察很好,我看到的是查询字符串的错误部分。谢谢你的帮助,它起作用了!