Javascript 用于解析URL外术语的正则表达式
我需要一个常规的express来解析URL的第一个目录: www.mydomain.com/查找此/anythis/anythis 所以--我不知道如何构造正则表达式来获取包含第一个目录的字符串,欢迎提供帮助 编辑--解析不是选项,我正在尝试创建正则表达式。您可以执行以下操作:Javascript 用于解析URL外术语的正则表达式,javascript,regex,Javascript,Regex,我需要一个常规的express来解析URL的第一个目录: www.mydomain.com/查找此/anythis/anythis 所以--我不知道如何构造正则表达式来获取包含第一个目录的字符串,欢迎提供帮助 编辑--解析不是选项,我正在尝试创建正则表达式。您可以执行以下操作: var myString = "www.mydomain.com/find_this/anything/blah" var string_I_want = myString.replace(/\/\//g, "").sp
var myString = "www.mydomain.com/find_this/anything/blah"
var string_I_want = myString.replace(/\/\//g, "").split("/")[1]
更容易阅读 您只需执行以下操作:
var myString = "www.mydomain.com/find_this/anything/blah"
var string_I_want = myString.replace(/\/\//g, "").split("/")[1]
更容易阅读 与第一个捕获组(原始正则表达式)匹配的内容: 匹配可选的
http://
/https://
、webserver/ip/port,然后,第一个组就是您想要的
var url = 'www.mydomain.com/find_this/anything/anything';
var match = /^(?:https?:\/\/)?(?:\w+)(\.\w+)*(?:\:\d+)\/([^\/]+)/.exec(url);
var root = match[1];
第一个捕获组(原始正则表达式)匹配的内容: 匹配可选的
http://
/https://
、webserver/ip/port,然后,第一个组就是您想要的
var url = 'www.mydomain.com/find_this/anything/anything';
var match = /^(?:https?:\/\/)?(?:\w+)(\.\w+)*(?:\:\d+)\/([^\/]+)/.exec(url);
var root = match[1];
试试这个:
str = "www.mydomain.com/find_this/anything/anything";
path = /(?:http\:\/\/)?(?:www)?\.mydomain\.com\/([^\/]+)/.exec(str) [1]
试试这个:
str = "www.mydomain.com/find_this/anything/anything";
path = /(?:http\:\/\/)?(?:www)?\.mydomain\.com\/([^\/]+)/.exec(str) [1]
以下是一些选项:
捕获:
/(.*?)/
使用命名捕获:
/(?<first_directory>.*?)/
(?:https?://.*?)?/(.*?)/
(?:https?://.*?)?/(?<first_directory>.*?)/
使用协议和命名捕获:
/(?<first_directory>.*?)/
(?:https?://.*?)?/(.*?)/
(?:https?://.*?)?/(?<first_directory>.*?)/
(?:https?:/*?/(?*?)/
您只需根据自己的口味进行翻译。以下是一些选项:
捕获:
/(.*?)/
使用命名捕获:
/(?<first_directory>.*?)/
(?:https?://.*?)?/(.*?)/
(?:https?://.*?)?/(?<first_directory>.*?)/
使用协议和命名捕获:
/(?<first_directory>.*?)/
(?:https?://.*?)?/(.*?)/
(?:https?://.*?)?/(?<first_directory>.*?)/
(?:https?:/*?/(?*?)/
您只需根据自己的口味进行翻译。只需尝试以下操作:
var rootDir = location.pathname.replace(/(^\/\w+\/).*/,"$1");
请尝试以下方法:
var rootDir = location.pathname.replace(/(^\/\w+\/).*/,"$1");
我要找普通快车是有原因的。无解析。@Atticus这是一个聪明的答案,您应该展示您的尝试。是否在.htaccess中使用正则表达式?如果我不寻找正则表达式,我会这样做。不幸的是,我的客户使用的系统通过正则表达式检查传入的链接。我寻找正则表达式是因为一个特定的原因。无解析。@Atticus这是一个聪明的答案,您应该展示您的尝试。是否在.htaccess中使用正则表达式?如果我不寻找正则表达式,我会这样做。不幸的是,我的客户端使用的系统通过正则表达式检查传入链接。如果您需要来自当前浏览器位置的第一个目录,则此操作有效。如果您需要来自当前浏览器位置的第一个目录,则此操作有效。