我想做的是将括号内的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/

10-09 00:25