str = 'http://*.foo.com/bar/'
是一个有效的字符串。
如何编写正则表达式以在JavaScript中验证?
`http://xyz.foo.com/bar/` ✓ valid
`http://xyz.foo.com/bar/abc/` ✗ invalid
`http://xyz.foo.com/` ✗ invalid
答案 0 :(得分:2)
尝试在RegExr玩游戏。它有很多很好的信息,当你完成后会在页面底部给你一个javascript正则表达式。
试试这个:
var url = // your url
url.match(/http://[a-zA-Z_0-9]+\.foo\.com/bar/$/g)
$
匹配字符串的结尾。最后的$
将确保其后没有文字。
答案 1 :(得分:0)
你能提供更多细节吗?
e,g,/^http://[a-zA-Z]+.foo.com/bar/$/g
将执行您正在寻找的内容。它将匹配xyz但不匹配xyz1,如果你想包含数字,这很容易修复。
玩它并告诉我你是否还有其他问题。
答案 2 :(得分:0)
一旦页面加载,您可以将一些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
}
答案 3 :(得分:0)
这个正则表达式适合你。
[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匹配。如果需要,请更新以满足您的需求。