这是我的字符串,它是我网站搜索页面中的网址。
http://localhost/healthlincs/find/10/?lat=-38.416097&lng=-63.616671999999994&query=a&filter=distance&show=clinic
http://localhost/healthlincs/find/?lat=-38.416097&lng=-63.616671999999994&query=a&filter=distance&show=clinic
此处只有字符串之间的差异是/10
子字符串之后find/
而另一个字符串没有/10
。这个10可以是后面的任何数字,如20, 30, 40
等。在这个url字符串上的/find
子字符串之后,我怎么知道这个数字是否存在?
如何将第一个字符串替换为第二个字符串?如果存在/10
或/20
,我想将其替换为空。
提前致谢。
答案 0 :(得分:3)
使用match非常简单:
var match = url..match(/\/find\/(\d+)\//);
if (match) {
// your number is match[1]
如果要删除该部分,可以这样做:
url = url.replace(/(\/find)\/\d+\//,'$1');
请注意,您应该尝试了解这些正则表达式,以便根据您的实际需要进行调整。
答案 1 :(得分:1)
^(https?:\/\/.*\/find\/)(?=(?:10|20))\d+\/(.*)$
试试这个。参见demo.Replace by $1$2
。
http://regex101.com/r/tF5fT5/47
var re = /^(https?:\/\/.*\/find\/)(?=(?:10|20))\d+\/(.*)$/gim;
var str = 'http://localhost/healthlincs/find/10/?lat=-38.416097&lng=-63.616671999999994&query=a&filter=distance&show=clinic\n\nhttp://localhost/healthlincs/find/?lat=-38.416097&lng=-63.616671999999994&query=a&filter=distance&show=clinic\n\nhttp://localhost/healthlincs/find/30/?lat=-38.416097&lng=-63.616671999999994&query=a&filter=distance&show=clinic';
var subst = '$1$2';
var result = str.replace(re, subst);