繁体   English   中英

如何使用“&”或“?”进行正则表达式调用? 作为第一个角色

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM