扫码关注官方订阅号
segmentfault怎么了,为什么我的问题只显示第一行,下面是问题的截图
以下是匹配到的是一个数组,index为1的那个是要替换掉的内容
欢迎选择我的课程,让我们一起见证您的进步~~
应该是记录fid前面的(?或者&)符号下来,replace的时候拼接上
'?cfid=operation&fid=2df&a=flockBBS'.replace(/([&?])fid\=[\s\S]*?(?=&)/i,'$1a=111')
使用i之匹配第一个,如果你要一次改所有的,换成g就行
好吧,直接用正则分3个组好了,不知道有没有更好的方法?
'?fid=2df&c=operation&a=flockBBS'.replace(/(.*[\?\&])(fid\=[^\&\#]*)(.*)/i,'$1fid=324$3')
就你这个需求而言,下面这样就可以满足:
'?fid=2df&c=operation&a=flockBBS'.replace(/fid=.+?(?=&)/, 'fid=324')
下面这个更好些:
'?fid=2df&c=operation&a=flockBBS'.replace(/fid=[^&]+/, 'fid=324')
个人认为,代码还是要根据具体的需求来,如果 url 中确实会出现你评论中所说的cfid,那可以改成下面这样:
cfid
'?cfid=operation&fid=2df&a=flockBBS'.replace(/([?&])fid=[^&]+/, '$1fid=324')
上面的代码可以保证 100% 无漏洞吗?不一定!但是他可以满足你的这个需求,这就够了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
应该是记录fid前面的(?或者&)符号下来,replace的时候拼接上
使用i之匹配第一个,如果你要一次改所有的,换成g就行
好吧,直接用正则分3个组好了,不知道有没有更好的方法?
就你这个需求而言,下面这样就可以满足:
下面这个更好些:
个人认为,代码还是要根据具体的需求来,如果 url 中确实会出现你评论中所说的
cfid
,那可以改成下面这样:上面的代码可以保证 100% 无漏洞吗?不一定!但是他可以满足你的这个需求,这就够了。