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

1. 剑指offer——替换空格

标签:
JavaScript

1. 描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
2.思路:正则表达式匹配所有空格,配合replace()函数
3. 代码

function replaceSpace(str){    if(str && typeof str === "string"){        // 替换所有空格
        return str.replace(/\s/g, "%20");        // 去掉开头和结束的空格
        return str.replace(/^\s|\s$/g,'%20');        // 去掉中间的空格,而保留开头和结尾的空格
        return str.replace(/(\S)\s+(\b)/g,'$1$2')
    }
}console.log(replaceSpace(" We Are Happy "));

4. 结果

%20We%20Are%20Happy%20
%20We Are Happy%20
 WeAreHappy

5. 总结

  1. replace()函数

  2. \s  表示匹配所有的不可见字符,包括空格、制表符、换页符等等

  3. \S 表示匹配所有可见字符

  4. | 在正则中表示或

  5. ^$ 表示开头和结尾

  6. \w 表示[a-zA-Z0-9]

  7. \b 表示匹配单词的边界,不匹配任何字符;\b是0宽度的;一侧是构成单词的字符,另一侧是非单词字符、字符串的开始或结束。比如“ We Are Happy ”中W,e, ,等包括空白字符都会占一个位置,可以叫“显式位置”;而W和e中间的位置,叫“隐式位置”,\b就是这个隐式位置;而\b匹配的位置是:它的前一个字符和后一个字符不全是\w

var str = 'hello hlo world fjw hlo';// 匹配 hlo 这个单词,第一个\b前面一个字符是空var reg = /\bhlo\b/gvar test = str.replace(reg,'hhhh');console.log(test)  // hello hhhh world fjw hhhh



作者:椰果粒
链接:https://www.jianshu.com/p/49ece177bc55


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消