应用不区分大小写的正则表达式后,将大写字符转换回大写
Convert uppercase characters back to uppercase after case insensitive regex being applied
在这里尝试在正则表达式匹配后将大写字符转换回大写字符会删除大写字符:
var text = 'Test Text';
var stringToStyle = 'test';
var update = "<span style='color:blue' >" + stringToStyle + "</span>";
var regexp = new RegExp(stringToStyle, 'gi');
var updated = text.replace(regexp, update);
function replaceAt(text , index, character) {
return text.substr(0, index) + character + text.substr(index+character.length);
}
function getPositionsOfUppercaseChars(text) {
var p = [];
var i = text.length;
while (i--) {
if(text[i] == text[i].toUpperCase() && text[i].trim() != ''){
p.push(i)
}
}
return p;
}
console.log(updated)
var positions = getPositionsOfUppercaseChars(text)
console.log(positions)
var positions
包含要转换的字符的位置到大写,wo 我将循环访问更新的文本并替换以前的字符大写。但是我需要为仓位添加偏移量,因为 [5,0] 不正确。
更新:
更新的 var 应该<span style='color:blue' >Test</span> Text
而不是
<span style='color:blue' >test</span> Text
这似乎是一种实现解决方案的抽搐方法,还有更优雅的方法吗?
https://plnkr.co/edit/6uO3M8kATQLXvWWVx1Vw?p=preview
来回答你的问题,是的 - 你会很高兴知道有一种更优雅的方式 -
var updated = text.replace(regexp, function style(match) { return "<span style='color:blue' >" + match + "</span>"; });
在替换中使用找到的匹配值的最优雅方法是在替换模式中使用反向引用:
var update = "<span style='color:blue' >$&</span>";
^^
观看演示:
var text = 'Test Text';
var stringToStyle = 'test';
var update = "<span style='color:blue' >$&</span>";
var regexp = new RegExp(stringToStyle, 'gi');
var updated = text.replace(regexp, update);
document.body.innerHTML = updated;
$&
反向引用提供对与正则表达式模式匹配的整个子字符串的快速访问。无需使用回调或其他技巧。
相关文章:
- 如何将 html 特殊字符转换为普通 HTML
- json将字符转换为随机字符
- 如何将字符串中的ascii字符转换为jquery中的字符
- 无法将字符转换为整数值
- 应用不区分大小写的正则表达式后,将大写字符转换回大写
- Javascript Cryptography - 将一个字符转换为另一个字符
- 用javascript将俄语(unicode)字符转换为英语
- 如何将一组ascii字符转换为字符串
- 在Javascript中将字符转换为正确的ASCII扩展整数值
- 俄语字符转换为二进制错误(JavaScript)
- Node.js为什么将BOM字符转换为0xFE 0xFF
- 将大写字符转换为小写字符,将小写字符转换为大写字符(反之亦然)
- 将特殊字符转换为Html编码字符
- 将特殊字符转换为HTML
- 是否有一个javascript函数将字符转换为&代码;等价的
- 在网页抓取中连字符转换成逗号
- 如何在jQuery掩码插件中将特殊字符转换为文字字符
- 如何在PHP中将UTF8字符转换为数字字符实体
- Javascript字符转换
- 土耳其字符转换为英文字符