Je souhaite séparer la chaîne alphabétique ou numérique et les caractères mathématiques d'une chaîne. Par exemple -
var test = "test1+test2*3+(test3*6)";
I want to separate it like this -
var result = ["test1", "+", "test2", "*", "3", "+", "(", "test3", "*", "6",")"];
Quelqu'un peut-il m'aider à obtenir le résultat, merci d'avance.
4 Réponses :
Vous pouvez utiliser une expression régulière pour faire correspondre un caractère mathématique ou tout autre caractère que des caractères mathématiques:
var test = "test1+test2*3+(test3*6)";
var result = test.match(/[+*()]|[^+*()]+/g);
console.log(result);
// ->
// ["test1","+","test2","*","3","+","(","test3","*","6",")"]
[+ * ()] - Faire correspondre un seul + , * , ( ou ) (n'hésitez pas à ajouter les caractères que vous souhaitez isoler ici) | - OU [^ + * ()] + - Correspond à tout sauf ces caractères, une ou plusieurs fois Cela donne les correspondances requises: / (\ w + | \ W) / gm
var test = "test1+test2*3+(test3*6)"; var result = test.match(/\w+|\W/g); console.log(result);
var test = "test1+test2*3+(test3*6)";
var temp=''
var arr=[];
for(var i in test){
if((/[^A-Za-z0-9]/).test(test[i]))
{arr.push(temp)
arr.push(test[i])
temp='';
}
else{
temp+=test[i]
}
}
console.log(arr.filter((value)=>{return value!==''}))