忽略反斜杠周期要求的Javascript正则表达式
对于我的正则表达式:忽略反斜杠周期要求的Javascript正则表达式,javascript,regex,Javascript,Regex,对于我的正则表达式: ^(http(s)?\://)?(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$ 我想知道约翰为什么会通过?这个正则表达式应该只传递URL > var j =
^(http(s)?\://)?(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$
我想知道约翰为什么会通过?这个正则表达式应该只传递URL
> var j = new RegExp("^(http(s)?\://)?(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$");
> j.test("john")
> true
有一个必需的\。在正则表达式行中,您通过向RegExp构造函数传递字符串来构造正则表达式 虽然\在正则表达式中作为转义字符具有特殊含义,但在字符串文字中也具有类似含义 字符串文字中的\\已解析为字符串中的\,因此在正则表达式中被视为转义字符 您需要提供转义\和转义转义字符 因此,对于匹配单个\的正则表达式,您需要:
var myRegEx = new RegExp("\\\\")
我建议避免使用构造函数,而是使用正则表达式文本
var myRegEx = /\\/;