J'ai une chaîne qui a un numéro dans celui que j'aimerais remplacer par un autre numéro.
Ie p> Je sais qu'il n'y a que d'être 1 numéro dans cette chaîne. P> Je peux obtenir ce loin: p> mais essentiellement je ne sais pas comment effectuer une recherche sur my_string pour Un chiffre et remplacez ce nombre avec quelque chose d'autre. P> est-ce possible avec jQuery? P> Merci pour toutes idées. P> P>
6 Réponses :
Cela fonctionnera pour des nombres naturels simples contenant 0 - 9.
var my_string = $('a#my_link').text().replace(/-?[0-9]*\.?[0-9]+/, 'replacement');
Ce n'est pas ce que l'OP a demandé. Il retournera le premier caractère du nombre ('3' dans ce cas); Il veut remplacer le numéro tout b> avec un autre numéro.
Merci, édité :-) Cependant, la regex correspondra au nombre entier, pas le premier chiffre.
var new_string = $('a#my_link').text().replace(/[0-9]+/, "somethingelse")
Replace somethingelse with, well, something else. :)
$('a#my_link').text($('a#my_link').text().replace(/\d+/,'something'));
$ ('a # my_link'). Texte ($ (ceci) .text (). Remplacez (/ d + /, 'quelque chose')); le code> devrait être encore meilleur
@Mikulas Dite - Essayez-le et vous découvrirez que Ce code> dans votre exemple ne fait référence à l'élément que vous pensez être. ;)
Vous devez d'abord faire boucler chaque mot en se scrupulant sur le caractère de l'espace à l'aide de la fonction Split () et envoyez le résultat à une matrice de chaîne. P>
Une fois que vous faites cela, testez chaque mot pour le numéro. Si vous trouvez le numéro Utilisez la fonction jQuery remplacwith (): http://api.jquerer.com/replacewith/ p>
espère que cela aide. p>
De nombreuses méthodes de jQuery comme Essayez-le: strong> http://jsfiddle.net/6mbeq/ p> Cela supprime la nécessité de fonctionner le sélecteur deux fois. p> En outre, lorsque vous obtenez un élément par son identifiant, il est en fait un peu plus rapide si vous n'incluez pas le nom de la balise. p> donc au lieu de p> Il est préférable de faire p> comme je l'ai fait ci-dessus. p> p> .text () code> peuvent accepter une fonction qui renvoie la valeur à l'insertion.
Il s'agit d'une solution qui ne nécessite pas de saisie de deux éléments. Joli.
Je devrai entrer dans l'habitude d'utiliser des fonctions comme ça. C'est une manière vraiment parfaite lors du remplacement des trucs.
Si vous avez besoin d'un numéro d'extraction, puis remplacez par une autre valeur.
let temp ="<polygon points=' 42,4874 936,4874 936,3434 42,3434'></polygon>" temp.replace(/(\d+)/g,v=>v*10)
J'aime cette syntaxe concise et puissante. Je noterai que le groupe de capture n'est pas nécessaire. À mes besoins, j'avais besoin string.replace (/ \ d + / g, v => v.padstart (5, '0')); code>