str = 'http://*.foo.com/bar/'
是一個有效的字符串。如何使用Javascript中的通配符驗證URL路徑?
如何編寫正則表達式來在JavaScript中驗證此問題?
`http://xyz.foo.com/bar/` ✓ valid
`http://xyz.foo.com/bar/abc/` ✗ invalid
`http://xyz.foo.com/` ✗ invalid
str = 'http://*.foo.com/bar/'
是一個有效的字符串。如何使用Javascript中的通配符驗證URL路徑?
如何編寫正則表達式來在JavaScript中驗證此問題?
`http://xyz.foo.com/bar/` ✓ valid
`http://xyz.foo.com/bar/abc/` ✗ invalid
`http://xyz.foo.com/` ✗ invalid
試試玩RegExr。它有很多好的信息,當你完成後,會在頁面底部給你一個javascript正則表達式。
試試這個:
var url = // your url
url.match(/http://[a-zA-Z_0-9]+\.foo\.com/bar/$/g)
的$
一個字符串的結尾相匹配。在最後的$
將確保它後面沒有文字。
你可以提供一些細節嗎?
E,G,/^http://[a-zA-Z]+.foo.com/bar/$/g
會做你要找什麼,如果它是一個單一的線(通過^ $分隔符)。它將匹配xyz,但不包含xyz1,如果你想包含數字,這很容易修復。
圍繞它玩,讓我知道你是否有更多的問題。
您可以指定一些location
對象的屬性,以自己的一次頁面加載變量(自location
是免費爲後來改變):
var hostURL = location.host; //should be '*.foo.com'
var pathURL = location.pathname; //should be '/bar'
然後創建一個RegExp對象:
var regex = '.*\.foo\.com/bar/$';
var testURL = new RegExp(regex);
並測試網址:
if (testURL(hostURL + pathURL)) {
//do something
}
這個正則表達式應該爲你做。
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov)\b
將以上分配給變量。並且測試這個模式是否與使用javascript的test()方法選擇的url匹配。如有需要,請更新以滿足您的需求。
替換'XYZ [A-ZA-Z0-9_]' – 2011-04-06 14:11:33