segmentfault怎么了,为什么我的问题只显示第一行,下面是问题的截图
以下是匹配到的是一个数组,index为1的那个是要替换掉的内容
segmentfault怎么了,为什么我的问题只显示第一行,下面是问题的截图
以下是匹配到的是一个数组,index为1的那个是要替换掉的内容
好吧,直接用正则分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=operation&fid=2df&a=flockBBS'.replace(/([?&])fid=[^&]+/, '$1fid=324')
上面的代码可以保证 100% 无漏洞吗?不一定!但是他可以满足你的这个需求,这就够了。
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答843 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
应该是记录fid前面的(?或者&)符号下来,replace的时候拼接上
使用i之匹配第一个,如果你要一次改所有的,换成g就行