Javascript 变数子域的正则表达式
使用Javascript RegExp,我尝试匹配URL,如下所示:Javascript 变数子域的正则表达式,javascript,regex,Javascript,Regex,使用Javascript RegExp,我尝试匹配URL,如下所示: http://sub.domain.com/ http://sub1.domain.com/ http://sub100.domain.com/ 我尝试了下面的正则表达式,它不起作用-不确定我做错了什么 ^http\:\/\/sub\d*\.domain\.com\/$ 编辑:修复了复制和粘贴错误 更新:由于某些原因,document.location.href与正则表达式不匹配-即使下面的示例(也在regex101.co
http://sub.domain.com/
http://sub1.domain.com/
http://sub100.domain.com/
我尝试了下面的正则表达式,它不起作用-不确定我做错了什么
^http\:\/\/sub\d*\.domain\.com\/$
编辑:修复了复制和粘贴错误
更新:由于某些原因,document.location.href
与正则表达式不匹配-即使下面的示例(也在regex101.com上)按预期工作。我现在的解决方法-我只匹配任何子域
…非常感谢您的帮助 您显示的子域具有标记“sub”,但您的正则表达式正在寻找“sub” 而且,没有必要逃避冒号 您没有说您是否希望测试匹配或实际捕获子域。我将假设后者:
var match = "http://foo.bar.com".match(/https?:\/\/(([^.]+)\.)?/);
alert(match[2]); //"foo"
我不明白你怎么能把葡萄和芒果作比较 以下是更正后的正则表达式:
/^http\:\/\/subs\d*\.app\.clicktale\.com\/$/.test("http://subs14.app.clicktale.com/");
立即在控制台中运行此命令
如果您使用
搜索
,则会得到0
,因为匹配的索引是0
“app.clicktale.com”显然与“domain.com”不匹配。沿着这些思路,我不知道subs
是否是sub
的打字错误,或者你的例子是否完全不相关。你给出的例子和regexp没有什么共同点:sub而不是subs,例如道歉-复制和粘贴打字错误。在regex查找“app.clicktale.com”时,这些例子还显示“domain.com”。这些例子实际上不能用来检查打字错误。@Utkanos-谢谢。我最终应用了一种变通方法,但这是最接近我所需要的-非常有必要您可以使用?
将最后一个\/
设置为可选,以防输入是http://sub.domain.com
仅限。@aelor由于某种原因,与document.location.href.search(regexHere)相比,这似乎不适用于我
我总是得到-1,除非我对sub
@UJC后面的数字进行硬编码。您得到的document.location.href
的值是多少?@aelor值是:http://subs14.app.clicktale.com/
*通过regex101.com测试此字符串时,它的工作原理与预期完全一致。当通过控制台进行测试时,我得到-1…想法?正则表达式中的dude提到你需要用你自己的域替换域,nyways我会更新答案,这肯定会起作用