继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

1. 剑指offer——替换空格

拉风的咖菲猫
关注TA
已关注
手记 311
粉丝 44
获赞 212

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP