我已經在這個主題上找到了很多帖子,但沒有帖子處理我的具體問題。javascript RegExp驗證url表達式
這是我用正則表達式(這個網站上找到):
function validateUrl(value){
return /[[email protected]:%._\+~#=]{2,256}\.[a-z]{2,6}([[email protected]:%_\+.~#?&//=]*)/i.test(value);
}
這證實了我的網址正確,直到到以下幾點:
mydomain.tld /我的空間/本「去(ES {WRO [納克
我的函數返回true,即使有不被允許像字符:'
或"
或(
或)
或[
或]
或{
或}
我不明白爲什麼這是允許的。我有這樣的:[[email protected]:%_\+.~#?&//=]
應該在我看來返回 'false
' ......
我還沒看着它密切,但我最初的猜測是,它只是匹配輸入的部分,但是正則表達式仍考慮部分匹配。爲了強制它檢查整個輸入字符串,你需要使用'^'和'''錨點。 –
@StevenDoggart聽起來像一個答案,不是嗎? –
@Thomas True,但我不想花時間確保我的預感是正確的。如果真的是答案,我很高興讓Atif獲得積分:) –