想通过replace进行全局替换的话无法识别“/”

想通过replace进行全局替换的话无法识别“/”

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>split()</title>
</head>
<body>
<script>
    var str="a/b/c/d/e/f/g/h";
var arr= str.replace(///,"-") ;//补充代码
//补充代码
    document.write(arr);
  </script>
</body>
</html>

经个人测试,若把原字符串str的“/”改为“,”可替换

那若就想通过全局替换原字符串该怎么编写?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
这小子真菜 2017-09-25 21:16:59

replace只是把字符号中的某部分进行替换,就算替换完成得到的还是字符串,这个可以用typeof测试,不可能得到数组array,如果想替换城数组,需要用split来。

如果想全局替换的话,先需要进行转义,然后后面加个全局标识g即可。

    var str="a/b/c/d/e/f/g/h";

var arr= str.replace(/\//g,"-") ;//得到的依然是字符串,只不过字符串变成了a-b-c-d-e-f-g-h


卡布琦诺 2017-09-25 16:45:10

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。即:

<script type="text/javascript">
    var str="imooc like!"
    document.write(str.replace(/like/, "batter"))
</script>

这里将使用battre替换like,而split() 方法用于把一个字符串分割成字符串数组。join() 方法用于把数组中的所有元素放入一个字符串。因此这里是需要使用split() 和join()这两个方法来实现的。即

<script>
    var str="a/b/c/d/e/f/g/h";
    var arr=str.split("/");
    var strNew=arr.join("-");
    document.write(arr);
    document.write("<br/>");
    document.write(strNew);
</script>

祝学习愉快!

qq_末世红_03538105 2017-09-25 14:35:27

把replace(///,"-")改成(/\//g,"-")  为什么会这样,我自己也在想。。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
JavaScript基础入门 2018
  • 参与学习       547    人
  • 提交作业       206    份
  • 解答问题       640    个

JavaScript作为前端学习中的一个重要组成部分,本课程将带领你从最基础的语法开始,学习js的流程控制语句、函数、内置对象、DOM基础、DOM事件、BOM基础以及经典的js案例--轮播图。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师