J'ai une chaîne en javascript comme `# box2 'et je veux juste le' 2 '.
A essayé:
var thestring = $(this).attr('href');
var thenum = thestring.replace( /(^.+)(\w\d+\w)(.+$)/i,'$2');
alert(thenum);
Il renvoie toujours # box2 dans l'alerte, comment puis-je le faire fonctionner?
Il doit s'adapter à n'importe quel numéro de longueur attaché à l'extrémité.
javascript
string
numbers
user1022585
la source
la source
Réponses:
Pour cet exemple spécifique,
dans le cas général:
Depuis que cette réponse a gagné en popularité pour une raison quelconque, voici un bonus: générateur de regex.
la source
"#box2_col3".replace( /^\D+/g, '')
aurait dû montrer2
, non2_col3
.#box2_col3
la question.#box2_col3
. Mais voyez l'OP regex utilisé (\w)(.+$)
) qui indique clairement qu'il y a d'autres caractères après le nombre.replace
fonctionner les nombres principaux en utilisanttheString.replace(/^.*\D+/g, '');
:, mais la solution de shiplu.mokadd.im est meilleure.Vous devriez essayer ce qui suit:
résultat
la source
parseInt(txt.match(/\d/g).join(''), 10)
" $ 20.0 ".match(/\d/g).join('')
=> "200" (juste en disant)Je pense que cette expression régulière servira votre objectif:
Où
txt
est ta chaîne.Il arrache tout ce qui n'est pas un chiffre.
Je pense que vous pouvez réaliser la même chose en utilisant cela aussi:
la source
/[^0-9]/g
+1 pour la lisibilité. Également utilisé avec la plupart des réponses ici: stackoverflow.com/q/1862130/1066234Essayez ce qui suit:
string.replace(/[^0-9]/g, '');
Cela supprimera tous les caractères non numériques, ne laissant que des chiffres dans la chaînela source
/[^0-9]/g
peut être remplacé par/[^\d]/g
.Utilisation de la fonction de correspondance.
jsfiddle
la source
J'ai essayé toutes les combinaisons citées ci-dessus avec ce code et je l'ai fait fonctionner, était la seule qui a travaillé sur cette chaîne ->
(12) 3456-7890
Résultat:
"1234567890"
Obs: je sais qu'une chaîne comme ça ne sera pas sur l'attr mais peu importe, la solution est meilleure, car plus complète.
la source
str.match(/\d+/g).map(Number)
qu'il retournera un tableauEt ceci est un extrait qui extrait les prix avec la devise et le formatage:
la source
vous pouvez utiliser une excellente méthode parseInt
il convertira les premiers chiffres en nombre
la source
Pour une chaîne telle que
#box2
, cela devrait fonctionner:jsFiddle:
la source
Vous pouvez utiliser une expression régulière.
Cela alertera 2.
la source
Avec les expressions régulières , comment obtenir des nombres à partir d'une chaîne, par exemple:
le résultat
myString
est "24
"vous pouvez voir un exemple de ce code en cours d'exécution ici: http://ideone.com/iOCf5G
la source
Vous pouvez utiliser la bibliothèque de chaînes de soulignement comme suit
le résultat sera: 1
Voir: https://github.com/epeli/underscore.string
DÉMO:
http://jsfiddle.net/abdennour/Vyqtt/
Code HTML:
Code JS:
si vous avez le suffixe suivant:
Vous pouvez utiliser la prochaine démo:
http://jsfiddle.net/abdennour/Vyqtt/1/
la source
Voici une solution. qui vérifie l'absence de données
la source
Utilisez ce code sur une ligne pour obtenir le premier numéro d'une chaîne sans obtenir d'erreurs:
la source
s'il vous plaît vérifier ci-dessous javaScripts, là vous ne pouvez obtenir que le numéro
production :
1234567789
la source
Vous pouvez extraire des nombres d'une chaîne à l'aide d'une expression régulière:
sortie: 25933473
la source
la source
Cette réponse couvrira la majeure partie du scénario. Je peux traverser cette situation lorsque l'utilisateur essaie de copier-coller le numéro de téléphone
Explication:
join convertira et concaténera les données du tableau en une seule chaîne
la source
}
Vous pouvez le faire comme ça, puis appeler la fonction où vous en avez besoin, avec le paramètre.
la source
Vous pouvez faire une fonction comme celle-ci
la source