J'ai besoin d'accomplir une tâche particulière en javascript, dans laquelle mon objectif est de faire correspondre la chaîne qui commence par un caractère d'un ensemble spécifique de caractères comme voyelle et se termine par le même caractère où le la longueur de la chaîne est supérieure à trois.
Jusqu'à présent, j'ai fait le code suivant qui commence et se termine par le même caractère mais ne sait pas comment le spécifier que le premier caractère provient du jeu de caractères spécifique:
function regexVar() {
var re = /(.).*\1/
return re;
}
console.log("obcdo".test(s));
supposons que l'ensemble spécifique de caractères est la voyelle
(a, e, i, o, u)
dans ce cas:
abcd ----> false
obcdo ----> true
ixyz ----> faux
3 Réponses :
Vous devez utiliser un jeu de caractères pour vous assurer que le caractère capturé est l'un de ceux que vous voulez, référencer en arrière le premier groupe capturé à la fin du modèle, pas le troisième groupe (votre modèle ne Je n'ai pas 3 groupes de capture), utilisez ^ et $ pour ancrer le motif au début et à la fin de la chaîne, et répétez avec {2,} plutôt que * pour vous assurer que la chaîne entière comporte au moins 4 caractères: const re = /^([aeiou]).{2,}\1$/
console.log(
re.test('abcd'),
re.test('obcdo'),
re.test('ixyz')
); /^([aeiou]).+\1$/
Vous pouvez utiliser ce modèle
let startAndEnd = (str) =>{
return /^([aeiou]).+\1$/i.test(str)
}
console.log(startAndEnd(`ixyz`))
console.log(startAndEnd(`abcd`))
console.log(startAndEnd(`obcdo`))
^ - Début de chaîne ([aeiou]) - Correspond à a, e, i, o, u n'importe lequel de ces éléments. (groupe 1) . + - Correspond à tout sauf à une nouvelle ligne. \ 1 - Match groupe 1 $ - Fin de chaîne
/^([aeiou]).+\1$/i
pouvez-vous s'il vous plaît expliquer à quoi je sert dans ce RegExp?
L'indicateur @AliAzim i est utilisé pour l'insensibilité à la casse. donc si vous utilisez l'indicateur i , regex traitera les lettres majuscules et minuscules comme le même caractère. sinon, il les traitera comme deux personnages différents
Si nous prenons l'ensemble des voyelles alors, l'expression régulière des mots commençant et se terminant par la même voyelle est:
var re = /(\ba(\w+)a\b|\be(\w+)e\b|\bi(\w+)i\b|\bo(\w+)o\b|\bu(\w+)u\b)/g;