1.应用场景
主要用于使用javascript 对字符串进行操作, 这里则是对字符串进行全局替换.2.学习/操作
需求如下:
1.首次需求
字符串替换, 将第一个空格替换为下划线.
很容易想到使用replace函数, 很多语言都提供了这样的函数.名字都是一样的, 用法也是大差不差.
关于replace的用法:
https://wangdoc.com/javascript/stdlib/regexp.html#stringprototypereplace
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace
https://www.w3school.com.cn/jsref/jsref_replace.asp
代码实现:
let string = 'just test .';
string = string.replace(/ /, '_'); // 这里可以直接使用空格即 / / 或者 /\s/
console.log(string );
执行结果: // 通过
2.需求改变
字符串替换, 将所有的空格替换为下划线. 只需要将上面的代码进行简单的修改, 即使得替换操作由局部变为全局操作.
代码实现:
let string = 'just test .';
string = string.replace(/\s/g, '_');
console.log(string);
执行结果: // 通过
3.需求再次改变.
要替换的字符串可能是动态无法预测的.或者 很多种可能, 这样情况下, 就要定义一个变量来处理. 同样是全局替换.
初次实现代码:
// 字符串替换 function strReplaceAll(search = ' ', replacement = '_', string){ if(!string) return; return string.replace(/search/g, replacement); }
然后调用验证:
let string = 'just test .';
string = strReplaceAll(' ', '_', string);
console.log(string);
执行结果: // 失败, 因为这里将参数search当作了字符串, 而不是变量.
但是只是局部替换则是可以的.
最后查询资料, 文档, 并且实践验证得到: //不过还是csdn 找到了同样遇到这样问题的博客
// 字符串替换 function strReplaceAll(search = ' ', replacement = '_', string){ if(!string) return; return string.replace(new RegExp(search,'g'), replacement); }
执行结果: //通过
总结:
我们遇到的很多问题, 总有人已经遇到, 并且已经解决, 有时候你要做的就是尽快地找到他们, 并且转化为自己的内在东西, 如果你是第一次遇到, 你是悲哀又是幸运的, 取决于你怎么对待.
上面的问题或者说很多问题, 就是查阅资料和动手实践的问题, 但也是工作生活中很重要的能力[解决问题的问题.]的组成部分之一.
后续补充
...
3.问题/补充
TBD
4.参考
https://blog.csdn.net/yzbben/article/details/53467659后续补充
...