[Javascript] How to use JavaScript's String.replace
2016-01-15 02:13
666 查看
In JavaScript, you can change the content of a string using the
replacemethod. This method signature is overloaded with a bunch of different ways to do string replacement in JavaScript. This lesson covers the entire API (including an interestingDSL for the replacement string).
console.clear() simpleStringReplace() simpleRegexReplace() globalRegexReplace() regexReplaceGroup() advancedRegexReplaceGroup() simpleFunctionReplacer() regexFunctionReplacerGroup() console.log('Tests passed') function simpleStringReplace() { var input = 'Perl is the best programming language' var expected = 'JavaScript is the best programming language' var result = input.replace('Perl', 'JavaScript') expect(result).toEqual(expected) } function simpleRegexReplace() { var input = 'My phone number is 123-555-3344' var expected = 'My phone number is xxx-xxx-xxxx' var result = input.replace(/\d{3}-\d{3}-\d{4}/, 'xxx-xxx-xxxx') expect(result).toEqual(expected) } function globalRegexReplace() { var input = 'The basketball is round, and the basketball is bouncy' var expected = 'The soccerball is round, and the soccerball is bouncy' var result = input.replace(/basketball/ig, 'soccerball') expect(result).toEqual(expected) } function regexReplaceGroup() { var input = 'Search with [Google](https://google.com), tweet with [Twitter](https://twitter.com)' var expected = 'Search with <a href="https://google.com">Google</a>, tweet with <a href="https://twitter.com">Twitter</a>' var result = input.replace(/\[(.*?)\]\((.*?)\)/g, '<a href="$2">$1</a>') expect(result).toEqual(expected) } function advancedRegexReplaceGroup() { var input = 'foobarbaz' var expected = 'foofoo-bar-$-bazbaz' var result = input.replace('bar', '$`-$&-$$-$\'') expect(result).toEqual(expected) } function simpleFunctionReplacer() { var input = 'theAnswerToLifeTheUniverseAndEverything' var expected = 'the-answer-to-life-the-universe-and-everything' var result = input.replace(/[A-Z]/g, upperToHyphenLower) expect(result).toEqual(expected) function upperToHyphenLower(match) { return '-' + match.toLowerCase(); } } function regexFunctionReplacerGroup() { var input = 'These are the replacer arguments' var expected = 'These are the replacer arguments: replacer, arguments, 14, These are the replacer arguments' var result = input.replace(/(replacer) (arguments)/, replacer) expect(result).toEqual(expected) function replacer(match, group1, group2, offset, wholeString) { return match + ': ' + [group1, group2, offset, wholeString].join(', ') } } console.clear() simpleStringReplace() simpleRegexReplace() globalRegexReplace() regexReplaceGroup() advancedRegexReplaceGroup() simpleFunctionReplacer() regexFunctionReplacerGroup() console.log('Tests passed') function simpleStringReplace() { var input = 'Perl is the best programming language' var expected = 'JavaScript is the best programming language' var result = input.replace('Perl', 'JavaScript') expect(result).toEqual(expected) } function simpleRegexReplace() { var input = 'My phone number is 123-555-3344' var expected = 'My phone number is xxx-xxx-xxxx' var result = input.replace(/\d{3}-\d{3}-\d{4}/, 'xxx-xxx-xxxx') expect(result).toEqual(expected) } function globalRegexReplace() { var input = 'The basketball is round, and the basketball is bouncy' var expected = 'The soccerball is round, and the soccerball is bouncy' var result = input.replace(/basketball/ig, 'soccerball') expect(result).toEqual(expected) } function regexReplaceGroup() { var input = 'Search with [Google](https://google.com), tweet with [Twitter](https://twitter.com)' var expected = 'Search with <a href="https://google.com">Google</a>, tweet with <a href="https://twitter.com">Twitter</a>' var result = input.replace(/\[(.*?)\]\((.*?)\)/g, '<a href="$2">$1</a>') expect(result).toEqual(expected); // $2 --> (.*?) --> (https://google.com) // $1 --> [.*?] --> [Google] } function advancedRegexReplaceGroup() { var input = 'foobarbaz' var expected = 'foofoo-bar-$-bazbaz' var result = input.replace('bar', '$`-$&-$$-$\'') expect(result).toEqual(expected) } function simpleFunctionReplacer() { var input = 'theAnswerToLifeTheUniverseAndEverything' var expected = 'the-answer-to-life-the-universe-and-everything' var result = input.replace(/[A-Z]/g, upperToHyphenLower) expect(result).toEqual(expected) function upperToHyphenLower(match) { return '-' + match.toLowerCase(); } } function regexFunctionReplacerGroup() { var input = 'These are the replacer arguments' var expected = 'These are the replacer arguments: replacer, arguments, 14, These are the replacer arguments' var result = input.replace(/(replacer) (arguments)/, replacer) expect(result).toEqual(expected) function replacer(match, group1, group2, offset, wholeString) { return match + ': ' + [group1, group2, offset, wholeString].join(', ') } }
相关文章推荐
- [Javascript] Regex: '$`', '$&', '$''
- [Javascript] Advanced Reduce: Composing Functions with Reduce
- 【JS复习笔记】01 基本语法
- c# webBrowser 模拟键盘输入及后台执行js
- JavaScript基础–闭包
- javascript构造函数、单例模式资料
- 应该如何在小,中,大型应用开发中组织前端js代码?
- JavaScript提高性能知识点汇总
- JavaScript焦点事件、鼠标事件和滚轮事件使用详解
- JavaScript知识点总结之如何提高性能
- 探讨JavaScript标签位置的存放与功能有无关系
- JavaScript程序开发之JS代码放置的位置
- JavaScript时间操作之年月日星期级联操作
- js倒计时,主要是用到setInterval函数
- js限制小数位数
- 评论添加表情gif小动画js特效
- three.js插件实现立体动感视频播放效果
- mvc json post执行顺序
- Javascript Math.ceil()与Math.round()与Math.floor()区别
- JS 中如何判断 undefined 和 null