无法替换括号

时间:2014-12-13 05:28:56

标签: javascript regex brackets

function replaceSuperscript(s) {
      var
        ix = '⁰¹²³⁴⁵⁶⁷⁸⁹ᵃᵇᶜᵈᵉᶠᵍʰⁱʲᵏˡᵐⁿᵒᵖʱʳˢᵗᵘᵛʷˣʸᶻ',
        re = '0123456789abcdefghijklmnopqrstuvwxyz'
      for (var i = 0; i < ix.length; i++)
        s = s.replace(new RegExp('\\[' + re[i] + '\\]', 'g'), ix[i])
      return s
    }
    document.write(replaceSuperscript('A[1], A[t], A[0]'))

我尝试了各种反斜杠,为什么这不起作用,如何让它工作?

预期输出:A¹, Aᵗ, A⁰

1 个答案:

答案 0 :(得分:2)

您可以使用String.replace回调和Array.indexOf

function replaceSuperscript(s) {
    var ix = '⁰¹²³⁴⁵⁶⁷⁸⁹ᵃᵇᶜᵈᵉᶠᵍʰⁱʲᵏˡᵐⁿᵒᵖʱʳˢᵗᵘᵛʷˣʸᶻ',
        re = '0123456789abcdefghijklmnopqrstuvwxyz';
    return s.replace(/\[(.)\]/g, function(m,g) {  return ix[re.indexOf(g)];  });
}