Regex chaîne se termine avec pas de travail en Javascript
Je ne suis pas très familier avec la regex. J'étais en train de tester si une chaîne de caractères se termine par une autre chaîne. Le code ci-dessous renvoie la valeur null lorsque je m'attendais à vrai. Quel est le problème avec le code?
var id = "John";
var exists ="blahJohn".match(/id$/);
alert(exists);
OriginalL'auteur Tony_Henrich | 2011-02-14
Vous devez vous connecter pour publier un commentaire.
Bien, avec cette approche, vous devez utiliser le
RegExp
constructeur, pour construire une expression régulière à l'aide de votreid
variable:Mais il existe de nombreuses façons d'y parvenir, par exemple, vous pouvez prendre le dernier
id.length
caractères de la chaîne, et de la comparer avecid
:var id = "Ke$ha";
OriginalL'auteur CMS
Vous devez utiliser un
RegExp()
objet de faire, pas un littéral:Qui est, si vous ne connaissez pas la valeur de test pour l'avance de l'exécution. Sinon, vous pouvez faire:
OriginalL'auteur James Sumners
De la plus belle façon de le faire est d'utiliser
RegExp.test
:Encore plus sympa serait de construire une fonction simple comme ceci:
substr
méthode sur IE < 9 est buggé, il ne peut pas gérer les négatifs des indices, par exemple, les essais de:'abc'.substr(-1) == 'c'
échoue, c'est à dire dusubstr
retourne l'ensemble de la chaîne. Je recommanderais leslice
à la place. Des acclamations.Merci. Je ne vais pas la changer, car votre réponse est acceptée.
OriginalL'auteur lonesomeday
Essayer ce -
Pourquoi ne pas ce travail? Pouvez-vous m'expliquer s'il vous plaît? Je pense que cela devrait fonctionner.
OriginalL'auteur Sachin Shanbhag
essayer cette
OriginalL'auteur Stewie Griffin
Pourquoi utiliser RegExp? Son cher.
Beaucoup plus facile et rentable, est-il?
c'est toute la question, votre réponse est incorrecte
OriginalL'auteur Alexander Sobolev
J'aime @lonesomeday 's solution, mais je suis fan de l'extension de la Chaîne.prototype dans ces scénarios. Voici mon adaptation de sa solution
Donc peut être vérifié avec
Savoureux...
OriginalL'auteur stephen mc
Si vous en avez besoin pour remplacer la fonction, examiner cette regExp:
//sortie: eventStr = "Bonjour% Monde";
OriginalL'auteur Dudi
`${id}$` est un code JavaScript Modèle de chaînes de caractères qui sera compilé pour " Jean -$'.
La
$
après Jean en RegExp est synonyme de la fin de la chaîne donc testé chaîne ne doit pas avoir quoi que ce soit après l'id de la valeur (c'est à dire John) afin de faire passer le test.new RegExp(`${id}$`) - permettra de compiler pour
/John$/
(donc si l'id ne doit pas être dynamique, vous pouvez simplement utiliser /Jean - $/à la place de new RegExp(`${id}$`) )Cool, en fait :). Espérons que l'explication que j'ai ajouté les aide à comprendre la solution.
OriginalL'auteur Alexander
Ici est une chaîne de prototype de la fonction qui utilise des regex. Vous pouvez l'utiliser pour vérifier si un objet chaîne de caractères se termine par un particulier de la chaîne de valeur:
Prototype de la fonction:
Exemple D'Utilisation:
OriginalL'auteur Ben Ronan