我有以下代码检查URL是否包含某种模式:
var url = "https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=regex%20javascript";
var patt = new RegExp('https?:\/\/[^/]+\.google\.[a-z.]+\/((search[?#])|(webhp[?#])|([?#])).*q=');
var check = patt.test(url);
alert(check);
如果不使用new RegExp()
,上述正则表达式将无效。如何在不创建正则表达式对象的情况下使用相同的正则表达式。例如,像这样的东西(似乎不起作用):
var url = "https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=regex%20javascript";
var check = ('https?:\/\/[^/]+\.google\.[a-z.]+\/((search[?#])|(webhp[?#])|([?#])).*q=').test(url);
alert(check);
答案 0 :(得分:1)
你的意思是像这样的正则表达式字面
var check = /https?:\/\/[^/]+\.google\.[a-z.]+\/((search[?#])|(webhp[?#])|([?#])).*q=/.test(url)
然而,这仅仅是语法糖,并没有让你免于创建实际的RegEx对象