这是我第一次在NodeJS中使用RegEx。
AIM:非常有效的URL检查。我找到了this regex。下面是我的代码,
var URL = "https://www.google.com/";
var regEx = "^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$";
if(URL.match(regEx)) {
console.log('matches');
} else {
console.log('doesnt match');
}
现在,我遇到一些语法错误,但找不到解决方案。错误就像“字符类中的范围混乱”。我不知道字符类或RegEx。请,有人帮助:)。
答案 0 :(得分:0)
这是因为您提供的正则表达式为String
尝试关注
var URL = "https://www.google.com/";
var regEx = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/;
if(URL.match(regEx)) {
console.log('matches');
} else {
console.log('doesnt match');
}
您可以阅读https://www.w3schools.com/jsref/jsref_obj_regexp.asp,以获取有关javascript中正则表达式的更多详细信息。
var t = /^foo(bar)?$/i;
alert(t instanceof RegExp);//returns true
请记住,由于Regex不是原始数据类型,而是RegExp(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp)的objext
答案 1 :(得分:0)
将代码更改为以下
var URL = "https://www.google.com/";
var regEx = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\
(\)\*\+,;=.]+$/;
if(URL.match(regEx)) {
console.log('matches');
} else {
console.log('doesnt match');
}