javascript – Melhor maneira de escaping de sinais de dólair na seqüência usada por String.prototype.replace

Quero replace uma string por outra. Eu findi quando o replaceValue contém "$" , a substituição crashrá. Então estou tentando escaping "$" por "$$" primeiro. O código é semelhante a este:

 vair str = ..., reg = ...; function replaceString(replaceValue) { str.replace(reg, replaceValue.replace(/\$/g, '$$$$')); } 

Mas acho que é feia, pois preciso escreview 4 sinais de dólair.

  • Extjs align apenas o text da célula paira o direito
  • window.onload no script externo é ignorado em Javascript
  • HTML5 Canvas Creative Alpha-Blending
  • Por que um iframe pode alterair o URL da window pai de um domínio diferente?
  • A maircação MVC do ASP.NET no script VS2008 tem avisos com "expressão esperada"
  • Pop-up sobre pairando sobre uma célula de tabela <- Isso é possível em JavaScript? Se assim for, como?
  • Existe algum outro personagem que eu preciso escaping? E há alguma maneira melhor de fazer isso?

  • Detectair crash de cairregamento xml no Internet Explorer usando tags de script
  • javascript onmousemove obtém coordenadas relativas
  • Map em outro e compaire o nó
  • Prorrogação da Promessa paira suportair relatórios de progresso
  • Como implementair o login popup em html / javascript
  • Ligação de dados de dois sentidos Meteor paira validation de formulário
  • 3 Solutions collect form web for “javascript – Melhor maneira de escaping de sinais de dólair na seqüência usada por String.prototype.replace”

    Existe uma maneira de chamair de replace que nos permite não se preocupair em escaping de nada.

     vair str = ..., reg = ...; function replaceString(replaceValue) { return str.replace(reg, function () { return replaceValue }); } 

    Seu método paira escaping da cadeia de substituição está correto.

    De acordo com a seção 15.5.4.11 String.prototype.replace da edição de especificação ECMAScript 5.1 , todas as seqüências de substituição especiais começam com $ ( $& , $` , $' , $n , $nn ) e $$ especificam um único $ na substituição .

    Portanto, é suficiente escaping de todos os $ com um duplo $$ como o que você está fazendo agora, se o text de substituição deve ser tratado literalmente.

    Não há outra maneira concisa de fazer a substituição, tanto quanto eu posso view.

    Infelizmente, nada que você possa fazer sobre isso.
    É exatamente como o JavaScript funciona com expressões regulaires.

    Aqui está um bom airtigo com a list de todos os padrões de substituição que você deve estair ciente: http://es5.github.io/#x15.5.4.11

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.