如何使用javascript检查字符串中的子字符串后是否存在数字?

时间:2014-11-12 09:07:22

标签: javascript regex string

这是我的字符串,它是我网站搜索页面中的网址。

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,我想将其替换为空。

提前致谢。

2 个答案:

答案 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);