js replace方法 js中replace的注意事项
大家好,今天给各位分享js replace方法的一些知识,其中也会对js中replace的注意事项进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
JS中的Replace方法使用经验分享
本文给大家分享的是我们在使用javascript中的replace方法的时候需要注意的一个事项,我就是没有注意到,才被这个bug烦了好久,这里记录下来,有需要的小伙伴可以参考下。
最近查一个bug,原因是JS中的Replace方法造成的,当将一个字符串中有处需要替换时,一般会用到JS中的Replace方法,Replace方法的第一个参数如果是传的字符串,只会替换第一处。代码如下:
复制代码
代码如下:
var
str
=
"0CEA65D5-DB8E-4876-A6F8-C88AC7F0E185,E846C244-8A19-4374-879B-0B1DC08D1747,6CB3EBA4-1E22-4E4D-8800-AE31130B6F5D";
alert(str.replace(",","','"));
上面的代码本意是将用逗号隔开的GUID的逗号替换成',',但实际结果只将第一个逗号替换了。
解决这个问题只需将replace的第一个参数使用正则的方式即可,代码如下:
复制代码
代码如下:
var
reg
=
new
RegExp(",","g");
var
str
=
"0CEA65D5-DB8E-4876-A6F8-C88AC7F0E185,E846C244-8A19-4374-879B-0B1DC08D1747,6CB3EBA4-1E22-4E4D-8800-AE31130B6F5D";
alert(str.replace(reg,"','"));
结果如下:
以上所述就是文本的全部内容了,希望对大家学习javascript能够有所帮助。
js的replace如何全部替换目标字符串
replace函数一次只能替换一个目标字符串,可以配合while循环替换所有字符串。
1、在script标签中定义一个字符串,字符串内容为“一个中国北方的中国人在做中国结”,然后将内容输出在网页中:
2、使用replace函数,这时第一个“中国”文本被空字符串替换,但是还有两个“中国”文本没有被替换:
3、添加while循环,循环条件用“indexOf”函数来判断是否“中国”两个字还存在,如果存在则继续替换,不存在则结束,这时所有的目标字符串都被替换完成:
js 页面刷新location.reload和location.replace的区别小结
reload方法,该方法强迫浏览器刷新当前页面。
语法: location.reload([bForceGet])
参数: bForceGet,可选参数,默认为 false,从客户端缓存里取当前页。true,则以 GET方式,从服务端取最新的页面,相当于客户端点击 F5("刷新")
replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL。
语法: location.replace(URL)
在实际应用的时候,重新刷新页面的时候,我们通常使用: location.reload()或者是 history.go(0)来做。因为这种做法就像是客户端点F5刷新页面,所以页面的method="post"的时候,会出现“网页过期”的提示。那是因为Session的安全保护机制。可以想到:当调用 location.reload()方法的时候, aspx页面此时在服务端内存里已经存在,因此必定是 IsPostback的。如果有这种应用:我们需要重新加载该页面,也就是说我们期望页面能够在服务端重新被创建,我们期望是 Not IsPostback的。这里,location.replace()就可以完成此任务。被replace的页面每次都在服务端重新生成。你可以这么写: location.replace(location.href)
replace函数在设置URL方面与location的href属性或assign函数完全一样,但是它会删除history对象的地址列表中的URL,从而使go或back等函数无法导航。
示例
<inputtype="button"value="点击按钮定位到百度"onclick="location.replace('http://
www.baidu.com/');">
好了,文章到此结束,希望可以帮助到大家。