J'ai essayé de trouver un moyen de remplacer une partie d'une chaîne dans une valeur d'entrée, mais je n'ai pas réussi à la faire fonctionner.

Le champ de saisie ressemble à ceci:

<input type="text" value="{'value': 'e', 'provider': {'provider_id': '6', 'dmnid': '2446-0'}}" name="Link" />

Et je veux remplacer le guillemet simple par un guillemet double. comment puis-je changer ma valeur d'entrée. j'ai écrit le code ci-dessous mais cela ne fonctionne pas et ne reconnaît pas le code unique.

Voici mon extrait:

$('input[name=Link]').val(function(index, value) {
   return value.replace(''', '"');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<input type="text" value="{'value': 'eydpZCc6IwNDA5J30=', 'provider': {'provider_id': '6', 'dmnid': '2446-0'}}" name="Link" />
1
inaz 16 avril 2018 à 11:17

4 réponses

Meilleure réponse

Vous pouvez utiliser /\'/g pour remplacer tous les guillemets simples par des guillemets doubles au niveau global. L'utilisation de \' et \" sera sans danger lorsque vous utilisez des guillemets dans vos expressions.

$('input[name=Link]').val(function(index, value) {
   return value.replace(/\'/g, '\"');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<input type="text" value="{'value': 'eydpZCc6IwNDA5J30=', 'provider': {'provider_id': '6', 'dmnid': '2446-0'}}" name="Link" />
1
Ankit Agarwal 16 avril 2018 à 08:20

Les problèmes avec le code actuel sont les suivants:

  1. Vous n'échappez pas à la citation unique dans la chaîne.
  2. Même si vous y échappez, il remplacera simplement la première occurrence du guillemet simple dans la chaîne cible.

Vous pouvez utiliser RegEx avec l'indicateur g pour remplacer toutes les occurrences de guillemets simples dans la chaîne:

$('input[name=Link]').val(function(index, value) {
   return value.replace(/'/g, '"');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<input type="text" value="{'value': 'eydpZCc6IwNDA5J30=', 'provider': {'provider_id': '6', 'dmnid': '2446-0'}}" name="Link" />
0
31piy 16 avril 2018 à 08:18

Vous pouvez utiliser le simple Regex /'/g pour cela.

PS: le g rend votre expression régulière globale.

$('input[name=Link]').val(function(index, value) {
   return value.replace(/'/g, '"');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<input type="text" value="{'value': 'eydpZCc6IwNDA5J30=', 'provider': {'provider_id': '6', 'dmnid': '2446-0'}}" name="Link" />
1
Zenoo 16 avril 2018 à 08:18

Voici comment je le ferais avec JQuery:

<input type="text" value="{'value': 'e', 'provider': {'provider_id': '6', 'dmnid': '2446-0'}}" name="Link" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
var link=$('input[name=Link]');
link.val(link.val().split("'").join('"'));
</script>
0
131 16 avril 2018 à 08:26