为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容3067478 2019-05-22 15:22:50
需求背景:公司一套后台系统,表格页面用ajax做分页,点击分页以后希望当前url记录分页信息,这样刷新当前页面时,分页信息不丢失。比如我点击第5页,当前url里面记录一个page_num=5,这样刷新页面时,直接进入第5页。现在的问题是,点击分页后,我需要无刷新修改url的方式更新url中的分页信息。以点击进入第5页为例。比如:https://www.baidu.com/点击后,url需要修改为:https://www.baidu.com/?page_num=5https://www.baidu.com/?page_num=2点击后,url需要修改为:https://www.baidu.com/?page_num=5https://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,这种特殊情况怎么处理呢?大神,如果有时间,就把这个问题也帮忙看下吧,帮忙写点代码,多谢啦。
查看完整描述

2 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

也可以把参数放在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);
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 377 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信