javascript中如何通过正则表达式修改字符串中的部分内容呢?

需求背景:
公司一套后台系统,表格页面用ajax做分页,点击分页以后希望当前url记录分页信息,这样刷新当前页面时,分页信息不丢失。比如我点击第5页,当前url里面记录一个page_num=5,这样刷新页面时,直接进入第5页。
现在的问题是,点击分页后,我需要无刷新修改url的方式更新url中的分页信息。以点击进入第5页为例。
比如:
https://www.baidu.com/
点击后,url需要修改为:
https://www.baidu.com/?page_num=5
https://www.baidu.com/?page_num=2
点击后,url需要修改为:
https://www.baidu.com/?page_num=5
https://www.baidu.com/?page_num=2&type=test
点击后,url需要修改为:
https://www.baidu.com/?page_num=5&type=test
我现在希望通过正则表达式的方式,针对性的修改page_num的值,url的其他部分不受影响,但是这段代码不会写(尤其是正则)?麻烦大神帮忙说下思路,最好贴点代码。
延伸一下:上面需求不只是针对性修改page_num值的问题,如果url里面本身没有page_num信息,那么就不是修改page_num的值,而是追加一个page_num=5,这种特殊情况怎么处理呢?大神,如果有时间,就把这个问题也帮忙看下吧,帮忙写点代码,多谢啦。
慕容3067478
浏览 378回答 2
2回答

慕勒3428872

也可以把参数放在hash里varhash=(location.hash||'').substring(1);varmatchPageNum=hash.match(/page_num=(\d+)/);if(matchPageNum){varmatchedNum=parseInt(matchPageNum[1]);location.hash=hash.replace(/page_num=(\d+)/,'page_num='+5);}else{location.hash=hash+(hash?'&':'?')+'page_num='+5}点击分页的时候再location.hash=location.hash.replace(/page_num=(\d+)/,'page_num='+5);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript