Javascript字符串替换某些字符

标签 javascript string replace

我有这个字符串:

var s = '/channels/mtb/videos?page=2&per_page=100&fields=uri%2Cname%2Cdescription%2Cduration%2Cwidth%2Cheight%2Cprivacy%2Cpictures.sizes&sort=date&direction=asc&filter=embeddable&filter_embeddable=true'

我想替换 per_page 编号(在本例中为 100,但它可以是 1-100 之间的任何数字,也许更多?)

我可以选择字符串的第一部分:

var s1 = s.substr(0, s.lastIndexOf('per_page=')+9)

这给了我:

/channels/mtb/videos?page=2&per_page=

但是我如何选择之后的下一个“&”以便替换数字出现?

不要假设参数的顺序相同!

最佳答案

您可以使用以下正则表达式来替换您想要的内容。

正则表达式:- /per_page=[\d]*/g(这仅适用于您的要求)

var new_no=12;  //change 100 to 12
var x='/channels/mtb/videos?page=2&per_page=100&fields=uri%2Cname%2Cdescription%2Cduration%2Cwidth%2Cheight%2Cprivacy%2Cpictures.sizes&sort=date&direction=asc&filter=embeddable&filter_embeddable=true';

var y=x.replace(/per_page=[\d]*/g,'per_page='+new_no);
console.log(y);

说明:-

/per_page=[\d]*/g

/          ----> is for regex pattern(it inform that from next character onward whatever it encounter will be regex pattern)
per_page=  ----> try to find 'per_page=' in string 
[\d]*      ----> match 0 or more digit (it match until non digit encounter)
/g         ---->/ to indicate end of regex pattern and 'g' is for global means find in all string(not only first occurrence) 

关于Javascript字符串替换某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49285079/

相关文章:

javascript - 冒号( :), 可以是……什么意思?类似于equal(=)?

c# - 为什么 .NET 字符串是不可变的?

javascript - 在 Javascript 中将字符串转换为数组的数组

java - 构造函数 ClassRoll(String f) 赋值帮助,我需要确定为什么无法显示滚动

javascript - 如何使用具有相同名称的复选框显示/隐藏选项卡部分?

javascript - AngularJS:多种形式的服务器端验证

javascript - 通过 openlayers 渲染 opensensemap IDW 功能

mysql_affected_rows() 在 'real' REPLACE INTO 上返回 1

java - 如何为 java replaceall 函数编写正则表达式?

linux - vi search and replace ,将搜索结果放入同一行的其他字段