Javascript 使用正则表达式匹配路径的中间?
我有一个varJavascript 使用正则表达式匹配路径的中间?,javascript,regex,Javascript,Regex,我有一个varshowNo,它是目录开头的输入 示例:var showNo=“101B” showNo之后是包含空格和其他由其他部门在网络上设置的垃圾的字符 示例:/101B海滩之旅/ 我需要在其中使用子目录: 示例:/101B海滩之旅/资产/工具/ 有没有办法使用regex和变量来避免扫描所有目录并尝试匹配前4个字符的子字符串 var directory = str.match(/\/101B[^\/]+\//)[0]; 将与以变量开头的第一个目录名匹配 更重要的是,这个想法如下: 匹配以目
showNo
,它是目录开头的输入
示例:var showNo=“101B”
showNo
之后是包含空格和其他由其他部门在网络上设置的垃圾的字符
示例:/101B海滩之旅/
我需要在其中使用子目录:
示例:/101B海滩之旅/资产/工具/
有没有办法使用regex和变量来避免扫描所有目录并尝试匹配前4个字符的子字符串
var directory = str.match(/\/101B[^\/]+\//)[0];
将与以变量开头的第一个目录名匹配
更重要的是,这个想法如下:
var regex_string = "/" + showNo + "[^/]+/";
然后将其“编译”成一个正则表达式,您可以正常使用该正则表达式:
var regex_dir = RegExp(regex_string);
var directory = str.match(regex_dir);
希望这有帮助 谢谢编辑Paul,但我希望这会有所帮助。我想你的意思是,你的第一次使用
str.match(/\/101B[^\/]+\/)
。或者,如果不使用regex文本,则不需要对/
进行转义,只需执行以下操作:str.match('/'+showNo+'[^/]+/')
。