如果我有一个字符串如下:
http:/mydomain.com/index.php/this/is/an/amazing/url/param/560/
我希望替换560的值,这是做什么的。
这里是否最好使用正则表达式或字符串函数,如果是这样,那么该值会有什么不同。
即
值可以是任何值:
http:/mydomain.com/index.php/this/is/an/amazing/url/param/120/
http:/mydomain.com/index.php/this/is/an/amazing/url/param/200/
也可能缺少尾随斜杠,即
http:/mydomain.com/index.php/this/is/an/amazing/url/param/560
答案 0 :(得分:3)
你可以这样做:
var new_number = 5;
url = url.replace(/\d+(\/)?$/, new_number + "$1");
这会查找数字,然后可选择一个斜杠,然后查找字符串的结尾。因此,您不会匹配http://example.com/some/other/1234/numbers
等内容。
答案 1 :(得分:1)
在这种情况下,正则表达式可能是最简单的解决方案:
url.replace(/\/\d+\/?$/, '/' + newNumber);
此正则表达式专门查找以斜杠结尾的任何内容,一个或多个数字,然后是可选的斜杠。
答案 2 :(得分:0)
var regex = new RegExp('\b'+value+'\b');
newurl = url.replace($regExp, newvalue);