[英]How to make a regex call with a '&' or '?' as first character
我正在尝试使用以下字符串进行正则表达式调用:
if ((/&timeout=true|?scn=header/i).test(url))
...,声明继续。 我在控制台中收到此错误:
未捕获的SyntaxError:无效的正则表达式:
/&timeout=true|?scn=header/
:无需重复
我该如何正确地发表此声明?
您必须转义问号字符,因为它是正则表达式运算符:
if ((/&timeout=true|\?scn=header/i).test(url))
问题是?
具有重复0或1次的特殊含义,因此是错误。 逃脱它:
/&timeout=true|\?scn=header/
尝试/(&timeout=true|\\?scn=header)/i
? 是正则表达式中的特殊字符,因此您需要对其进行转义
演示: http : //www.regexr.com/3bqlu
尝试这个:
/[&\\?]timeout=true|[&\\?]scn=header/
两者都匹配
http://example.com/file.html?scn=header&timeout=true
http://example.com/file.html?timeout=true&scn=header
因为我们不知道哪个参数先出现
这似乎有效
/\\&timeout=true|\\/?scn=header/i
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.