javascript - 实现一个简单的替换方法,仍然得到大写的单词
问题描述
当我尝试替换一个简单的字符串时,我遇到了一个简单但连贯的问题:
const reference = 'then Max have gone with Sara.';
const selector = 'sara';
const phrase = 'Joe';
const result = reference.toLowerCase().replace(selector, phrase);
console.log(result);
我有一个reference
字符串,我想用 a 替换selector
a phrase
。
问题是选择器可能都是小写的,所以我需要转换对所有小写单词的引用才能在两个全小写字符串上实现替换方法,对吗?
现在问题出现了......当我将引用转换为小写单词时,所有大写单词(如 Max 作为名称!)意外地变为小写......
我怎样才能做替换方法,仍然得到这个结果:
then Max have gone with Joe.
解决方案
RegExp
您可以使用一些标志构建正则表达式 ( ),例如g
用于全局(替换所有出现)和i
不区分大小写的搜索。
这种方法不包括特殊字符,而是所有字母和数字。
const
reference = 'then Max have gone with Sara.',
selector = 'sara',
phrase = 'Joe',
result = reference.replace(new RegExp(selector, 'gi'), phrase);
console.log(result);
console.log('foo.'.replace(new RegExp('.', 'gi'), '!')); // all chars are replaced
推荐阅读
- r - 如何防止在缺少 2 行以上数据的值之间进行插值?
- eclipse - 管理两个不同版本的 Eclipse 插件
- javascript - 从文件输入中选择多个带有 react `ref` 的文件
- r - 书签似乎没有为我闪亮的应用程序保存输入或输出值
- android - 如何防止在 Android Auto 处于活动状态时在手机上显示信息?
- php - 将布尔搜索字符串拆分为其组成部分/计算导致 SQL SELECT 匹配的原因
- azure - 需要将 VS SLN 文件的显式列表提供给 nuget 还原任务
- objective-c - 有没有办法从命令行或代码中获取 Objective-C 版本?
- python - Python 在读取 JSON 文件时处理异常
- android - 如何模拟应用程序类来单元测试 ViewModel