principiantes - Javascript reemplaza "''" por "'' ''"
node js examples (7)
¿Has probado esto?
temp.replace("''", "''''");
Estoy intentando reemplazar el carácter "''" con la cadena "'' ''" usando el método de reemplazo, como este:
temp.replace("/'", "''''");
pero parece que no está reemplazando nada. cómo debería escribir el comando para reemplazar el carácter deseado con la cadena deseada (estoy tratando de reemplazarlo en el siguiente xml):
<Module ForceTabs="1">
<Events>
<Event Value="onafter_moduleinit_beforedraw()" Type="onafter_moduleinit_beforedraw"/>
</Events>
<Section Id="Header" Type="header" Caption="Header" ContainerCSS="background:#C1E0F4;border-bottom:2px groove;margin-bottom:3px;padding:10 3 3 3">
<Containers>
<Form Id="Header" Caption="General Details" Source="Request" Layout="Fixed">
<Layout>
<table cellaspacing="0" cellpadding="0">
<tr>
<td>
<ControlRef Id="Origin" ShowCaption="1"/>
</td>
<td>
<ControlRef Id="Type" ShowCaption="1"/>
</td>
<td>
<ControlRef Id="Process" ShowCaption="1"/>
</td>
<td width="20" align="center">
<span class="separator"/>
</td>
<td>
<ControlRef Id="FindBy" ShowCaption="1"/>
</td>
<td>
<ControlRef Id="Find"/>
</td>
<td>
<button width="30" onclick="doFindCustomer()">
<Caption Caption="GO"/>
</button>
</td>
</tr>
</table>
</Layout>
<Controls>
<Control Id="Origin" Caption="Origin" FieldName="Origin" DataType="string" Width="90" CaptionWidth="70" ReadOnly="1" Mandatory="1" Hidden="1"/>
<Control Id="Type" Caption="Type" FieldName="Type" DataType="select" Width="60" CaptionWidth="40" ReadOnly="1" Mandatory="1" DefaultValue="Service" Hidden="1">
<Member Value="Allert" Caption="Allert"/>
<Member Value="Service" Caption="Service"/>
<Member Value="Marketing" Caption="Marketing"/>
</Control>
<Control Id="Process" Caption="Process" FieldName="Process" DataType="string" Width="90" CaptionWidth="70" ReadOnly="1" Mandatory="1" Hidden="1"/>
<Control Id="FindBy" Caption="Find:" VCaption="Find By" FieldName="FindBy" DataType="select" Width="90" CaptionWidth="50" ReadOnly="0" Mandatory="0" CaptionCSS="font-weight:bold" DefaultValue="IMTSI">
<Member Value="IMTSI" Caption="IMTSI"/>
<Member Value="ID" Caption="ID"/>
</Control>
<Control Id="Find" Caption="Find Value" FieldName="Find" DataType="string" Width="90" CaptionWidth="60" ReadOnly="0" Mandatory="0" CaptionCSS="font-weight:bold"/>
</Controls>
</Form>
</Containers>
</Section>
<Section Id="1" Type="page" Caption="Message Details">
<Containers>
<Form Id="General" Caption="General Details" Source="Request" Layout="Fixed">
<Controls>
<Control Id="MessageType" Caption="Message Type" Source="Param[@Name = ''MessageType'']" FieldName="Value" DataType="select" Width="150" CaptionWidth="120" ReadOnly="1" Mandatory="1" DefaultValue="Allert" Action="handleMessageTypeChange()" BreakAfter="0">
<Member Value="SMS" Caption="SMS"/>
<Member Value="EMAIL" Caption="EMAIL"/>
<Member Value="ATOS" Caption="ATOS"/>
<Member Value="SELF SERVICE" Caption="SELF SERVICE"/>
</Control>
<Control Id="Language" Caption="Language" Source="Param[@Name = ''Language'']" FieldName="Value" DataType="string" Width="100" CaptionWidth="90" ReadOnly="1" BreakAfter="1"/>
<Control Id="FirstName" Caption="First Name" Source="Param[@Name = ''FirstName'']" FieldName="Value" DataType="string" Width="350" CaptionWidth="120" BreakAfter="1"/>
<Control Id="LastName" Caption="Last Name" Source="Param[@Name = ''LastName'']" FieldName="Value" DataType="string" Width="350" CaptionWidth="120" BreakAfter="1"/>
<Control Id="IMTSI" Caption="IMTSI" Source="Param[@Name = ''IMTSI'']" FieldName="Value" DataType="string" Width="350" CaptionWidth="120" BreakAfter="1" Mandatory="0"/>
<Control Id="Mobile" Caption="Mobile" Source="Param[@Name = ''Mobile'']" FieldName="Value" DataType="string" Width="350" CaptionWidth="120" BreakAfter="1" Mandatory="1"/>
<Control Id="Email" Caption="Email" Source="Param[@Name = ''Email'']" FieldName="Value" DataType="string" Width="350" CaptionWidth="120" BreakAfter="1" Mandatory="0"/>
<Control Id="Subject" Caption="Subject" Source="Param[@Name = ''Subject'']" FieldName="Value" DataType="string" Width="350" CaptionWidth="120" BreakAfter="1" MaxLen="40" Hidden="1"/>
<Control Id="Content" Caption="Content" Source="Param[@Name = ''Content'']" FieldName="Value" DataType="longstring" Width="350" CaptionWidth="120" Height="60" BreakAfter="1" MaxLen="50" Mandatory="1" SeparateBefore="1" SeparateAfter="1"/>
<Control Id="Sender" Caption="Sender" Source="Param[@Name = ''Sender'']" FieldName="Value" DataType="string" Width="350" CaptionWidth="120" ReadOnly="1" BreakAfter="1"/>
<Control Id="Priority" Caption="Priority" Source="Param[@Name = ''Priority'']" FieldName="Value" DataType="select" Width="350" CaptionWidth="120" BreakAfter="1" DefaultValue="LOW">
<Member Value="LOW" Caption="Low" Glyf="../../GUIGenerator_V2/assets/themes/Images/flag_blue.png"/>
<Member Value="MED" Caption="Medium" Glyf="../../GUIGenerator_V2/assets/themes/Images/flag_yellow.png"/>
<Member Value="HIGH" Caption="High" Glyf="../../GUIGenerator_V2/assets/themes/Images/flag_red.png"/>
</Control>
</Controls>
</Form>
</Containers>
</Section>
</Module>
Debo reemplazar el single por dos singles, no puedo cambiarlo a "but to ''''
Así que básicamente se trata de cambiar el carácter de comillas simples con 2 caracteres de comillas simples, ¿verdad? Si ese es el caso, es posible que desee utilizar la bandera global, g
al final de su expresión regular y regresarla a su valor (temperatura)
temp = temp.replace(/''/g,"''''");
El problema es ese
temp.replace("/'", "''''");
solo reemplazará la primera instancia de ''. Para solucionar esto, haga lo siguiente en su lugar
temp.replace(/''/g, "''''"));
Esto asegurará que pase y reemplaza todas las instancias de la comilla simple en lugar de solo la primera.
El truco es citar cada cadena con el otro carácter de comillas:
temp.replace(/''/g, ''"'');
Editar: Ben Lee tiene razón sobre la expresión regular, actualizada anteriormente. Sin embargo, todavía lo encuentro que desea reemplazar con "
(una comilla doble), no ''''
(dos comillas simples).
En realidad, estás tratando de reemplazar (/ ''), no solo el carácter de comillas simples. No hay necesidad de escapar una comilla simple en una cadena delimitada por comillas dobles, porque no significan el final de una cadena ...
Reemplazar solo reemplazará la primera cita coincidente, a menos que esté usando nuestro viejo amigo Regexp. La desventaja es que las expresiones regulares tienden a ser lentas. No he verificado para ver cuál es más rápido, pero podrías intentar usar split:
var chunks = temp.split("''").join("''''");
test = "string cont''aining single ''quotes".split("''").join("''''");//in firebug console
//returns "string cont''''aining single ''''quotes" as expected
Su código simplemente reemplaza una sola instancia (la primera que encuentra). Deberías reemplazar todas las instancias. Puede hacer esto usando una expresión regular y agregando un indicador g
al final, lo que significa "búsqueda global". Me gusta esto:
temp.replace(/''/g, "''''")
Aquí hay un ejemplo de trabajo: http://jsfiddle.net/Q2Uyv/ (escriba algo en el cuadro "En" y haga clic en "Convertir").
Si realmente está tratando de reemplazar las comillas simples con comillas dobles (en lugar de duplicar la secuencia de comillas simples), haga esto:
temp.replace(/''/g, ''"'')
while (str.indexOf("''") >= 0)
{
var newStr = str.replace("''", "/"");
str = newStr;
}