我有一组我需要替换的字符串,但我需要保留字母的大小写.输入字和输出字的长度相同.
例如,如果我需要用"qwer"替换"abcd",那么应该发生以下情况:
"AbcD" translates to "QweR"
"abCd" translates to "qwEr"
Run Code Online (Sandbox Code Playgroud)
等等.
现在我正在使用JavaScript replace,但大写字母在翻译时丢失了.
r = new RegExp( "(" + 'asdf' + ")" , 'gi' );
"oooAsdFoooo".replace(r, "qwer");
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
Web*_*ver 13
我将把这个留在这里供参考。
场景:项目列表上不区分大小写的搜索框,字符串的部分匹配应突出显示,但保持原始大小写。
highlight() {
const re = new RegExp(this.searchValue, 'gi'); // global, insensitive
const newText = name.replace(re, `<b>$&</b>`);
return newText;
}
Run Code Online (Sandbox Code Playgroud)
$& 是大小写匹配的文本
这是一个帮手:
function matchCase(text, pattern) {
var result = '';
for(var i = 0; i < text.length; i++) {
var c = text.charAt(i);
var p = pattern.charCodeAt(i);
if(p >= 65 && p < 65 + 26) {
result += c.toUpperCase();
} else {
result += c.toLowerCase();
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以:
"oooAsdFoooo".replace(r, function(match) {
return matchCase("qwer", match);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7489 次 |
| 最近记录: |