Bonjour, j'ai un numéro de plaque BZ8345LK et je veux le convertir en BZ 8345 LK (en ajoutant un espace entre le caractère et le nombre).
J'ai essayé avec ce Regex mais pas travail, seulement espace premier caractère avec nombre. Ex BZ 8345LK , le ' LK ' ne garde pas d'espace avec le nombre.
var str = 'BZ8345LK'; str.replace(/[^0-9](?=[0-9])/g, '$& '); # return BZ 8345LK, I want BZ 8345 LK
4 Réponses :
Vous devriez alterner avec l'autre possibilité, qu'un nombre soit suivi d'un non-nombre:
var str = 'BZ8345LK'; console.log(str.replace(/[^0-9](?=[0-9])|[0-9](?=[^0-9])/g, '$& '));
S'il est utilisé dans la saisie de texte avec onChange, ce code ajoute plus d'espace supplémentaire à chaque caractère et nombre.
Vous pouvez utiliser cette expression régulière
let str = 'BZ8345LK' let op = str.replace(/[a-z](?=\d)|\d(?=[a-z])/gi, '$& ') console.log(op)
[a-z] (? = \ d) - Correspond à n'importe quel alphabet suivi d'un chiffre | - Alternance identique au OU logique \ d (? = [a-z]) - Tout chiffre suivi de l'alphabet
[a-z](?=\d)|\d(?=[a-z])
Ce meilleur choix dans la saisie de texte dynamique comme sur le changement.
Pouvez-vous forcer la suppression d'espace supplémentaire dans le nombre BZ 83 45 LK à BZ 8345 LK
Si le format numérique BZ83 45LK , comment conserver la sortie BZ 8345 LK
@Puyup Tout d'abord supprimez les espaces , puis utilisez la réponse.
@Puyup vous pouvez simplement supprimer tout l'espace str.replace (/ \ s + / g, '')
Une autre option consiste à utiliser:
const str = 'BZ8345LK'
let answer = str.replace(/^[^\d]+|[\d]{4}/gi, '$& ')
console.log(answer) Rechercher tout caractère non numérique [^ \ d] suivi de 4 numériques [\ d] {4} caractères
^[^\d]+|[\d]{4}
Essayez avec ceci
var str = "BZ8345LK"; var result = str.replace(/([A-Z]+)(\d+)([A-Z]+)/, "$1 $2 $3"); console.log(result);
voici pourquoi stackoverflow.com/questions/1144783/...