使用正则表达式而不创建正则表达式对象 - JavaScript

时间:2016-07-31 11:33:55

标签: javascript regex

我有以下代码检查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);

1 个答案:

答案 0 :(得分:1)

你的意思是像这样的正则表达式字面

var check = /https?:\/\/[^/]+\.google\.[a-z.]+\/((search[?#])|(webhp[?#])|([?#])).*q=/.test(url)  

然而,这仅仅是语法糖,并没有让你免于创建实际的RegEx对象