2017-02-28 79 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

謝謝!我非常感謝幫助! –