J'essaie de détecter une occurrence d'une chaîne dans la chaîne. Mais le code ci-dessous retourne toujours "NULL". De toute évidence, quelque chose s'est mal passé, mais comme je suis un débutant, je ne peux pas le repérer. J'attends que le code renvoie "vrai" au lieu de "null"
4 Réponses :
S'il vous plaît ne pas mettre "/" lorsque vous passez la chaîne dans l'option REGEXP
suivante serait bien p>
Pourriez-vous essayer avec Searchstr uniquement sans \\ b code> partie? votre chaîne est censée travailler sans cela.
@Fares, vous avez besoin '\\ b' code> avec 2 'S, pas ' \ b ' code>.
Notez que '\\ B' est une seule barre oblique dans une chaîne suivie de la lettre 'B', '\ b' est le code d'évacuation envisager également de s'échapper des métacaracters dans la chaîne si vous leur souhaitez uniquement correspondre à leurs valeurs littérales. P> \ b code>, qui n'existe pas, ce qui n'existe pas et S'effondre vers 'B'. var string = 'width';
var quotemeta_string = string.replace(/[^$\[\]+*?.(){}\\|]/g, '\\$1'); // escape meta chars
var pattern = quotemeta_string + '\\b';
var re = new RegExp(pattern);
var bool_match = re.test(input); // just test whether matches
var list_matches = input.match(re); // get captured results
Le bon outil de ce travail n'est pas regex, mais string.indexof: documentation: https://developer.mozilla.org/fr/core_javascript_1.5_reference/Objects/string/indexof P> P>
Ce n'est pas faux parce que la phrase suivante est également vraie: var str = '32: largeur: 900px; ', recherche =' wid ', isinstring =! (str.indexof (recherche) == -1); console.log (isinstring);
Vous mélangez les deux façons de créer des expressions sur JavaScript. Si vous utilisez un littéral surgex, Si vous le créez sous la forme d'un littéral de chaîne pour le constructeur Regeuxp, vous laissez désactiver les délimiteurs de regex, vous passez des modificateurs sous la forme d'un deuxième argument de chaîne et vous devez doubler les backslashes dans les séquences d'échappement Regex: p> la façon dont vous le faites, le / code> est le délimiteur de regex, le modificateur g code> suit immédiatement le délimiteur de fermeture et \ b code> est la séquence d'évacuation Pour une limite de mot: \ b code> est converti en un caractère arrière avant d'atteindre le compilateur de regex; Vous devez échapper à la barre oblique intégrale pour que le traitement de séquence d'évacuation de l'évasion de String-littéral de Javascript. Ou utiliser un littéral surgèrent. P> p>