Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 变数子域的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 变数子域的正则表达式

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

使用Javascript RegExp,我尝试匹配URL,如下所示:

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我会更新答案,这肯定会起作用