我想做的是将括号内的html文本转换为大写。我希望输出为:
Cat (IVA)
Dog (MANGO) etc.
我究竟做错了什么?
// Transform text inside parentheses to upper case
let petName = $(".petName").text();
let regExp = /\(([^)]+)\)/;
for (var i = 0; i < petName.length; i++) {
let regExp = /\(([^)]+)\)/;
regExp.replace(petName[i].toUpperCase())
}
html
<div>
<h1 class="petName">Cat (Iva)</h1>
</div>
<div>
<h1 class="petName">Dog (Mango)</h1>
</div>
<div>
<h1 class="petName">Puppy (Mara)</h1>
</div>
最佳答案
这里有多处错误:
字符串对象在JS中是不可变的。 regExp.replace(…)
不会更改原始内容,只会返回更改后的结果。
您没有选择任何开始的元素。选择器.petName h1
匹配作为类h1
的元素后代的petName
元素。
您不能在替换时直接调用函数,而是需要通过回调函数来实现,该回调函数将传递给它的匹配项。
let $petNames = $("h1.petName")
$petNames.each(function() {
$(this).text( $(this).text().replace(/\(([^)]+)\)/, function(match) {
return match.toUpperCase()
} ) )
})
关于javascript - 将括号内的文本转换为大写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62325888/