首页 > 解决方案 > 实现一个简单的替换方法,仍然得到大写的单词

问题描述

当我尝试替换一个简单的字符串时,我遇到了一个简单但连贯的问题:

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 替换selectora phrase

问题是选择器可能都是小写的,所以我需要转换对所有小写单词的引用才能在两个全小写字符串上实现替换方法,对吗?

现在问题出现了......当我将引用转换为小写单词时,所有大写单词(如 Max 作为名称!)意外地变为小写......

我怎样才能做替换方法,仍然得到这个结果:

then Max have gone with Joe.

标签: javascript

解决方案


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


推荐阅读