2017-02-28 36 views
2

我遇到了我的正则表达式问题。在正则表达式中有一个“//”,这明显地破坏了我的代码的其余部分... 这是一个网站验证器,这是迄今为止我找到的最好的正则表达式,但MVC是一个痛苦!正则表达式意见冲突

function CheckWeb() { 
    if ($("#Company_ContactType").val() == 'WEB') { 
     if (/_^(?:(?:https?|ftp):/ /)(? : \S + (? ::\S *) ? @ @) ? (? : (? !10(? : \.\d { 1, 3 }) { 3 })(? !127(? : \.\d { 1, 3 }) { 3 })(? !169\ .254(? : \.\d { 1, 3 }) { 2 })(? !192\ .168(? : \.\d { 1, 3 }) { 2 })(? !172\.(? : 1[6 - 9] | 2\ d | 3[0 - 1])(? : \.\d { 1, 3 }) { 2 })(? : [1 - 9]\ d ? | 1\ d\ d | 2[01]\ d | 22[0 - 3])(? : \.(? : 1 ? \d { 1, 2 } | 2[0 - 4]\ d | 25[0 - 5])) { 2 }(? : \.(? : [1 - 9]\ d ? | 1\ d\ d | 2[0 - 4]\ d | 25[0 - 4])) | (? : (? : [a - z\ x { 00 a1 } - \x { ffff } 0 - 9] + - ?) * [a - z\ x { 00 a1 } - \x { ffff } 0 - 9] +)(? : \.(? : [a - z\ x { 00 a1 } - \x { ffff } 0 - 9] + - ?) * [a - z\ x { 00 a1 } - \x { ffff } 0 - 9] +) * (? : \.(? : [a - z\ x { 00 a1 } - \x { ffff }] { 2, })))(? ::\d { 2, 5 }) ? (? : /[^\s]*)?$_iuS/.test) { 
      var resultDiv = $("#IsValid"); 
      resultDiv.text(""); 
     } 
    }); 
} 

有没有什么办法,我保证它不注释掉超越“测试

+0

为什么使用JS一个PCRE正则表达式? –

+0

老实说,我对正则表达式了解不多,所以我只用了那个,因为它是最全面的,但除此之外,我不知道... –

+1

在每个'/'前面都使用反斜杠。 like ..'\/\ /' – m87

回答

1
(?:(?:https?|ftp):/ /) 

应该是这样的:?

(?:(?:https?|ftp):\/\/) 

你也有另外一个前锋斜线朝向需要逃脱的末端:

(? : /[^\s]*)?$_iuS 

应该是:

(? : \/[^\s]*)?$_iuS 

这导致没有图案的错误上regex101

+0

谢谢!我非常感谢帮助! –