J'ai une chaîne avec des caractères mathématiques différents et je veux faire le dernier numéro négatif / positif. Disons que la chaîne est "100/5 * 30-60 + 333". Le résultat que je veux est "100/5 * 30-60 + (- 333)", et je veux le convertir à positif ("100/5 * 30-60 + 333").
function posNeg() {
// hiddenText is a <input> element. This is not shown.
let n = hiddenText.value;
n.split('+');
n.split('-');
n.split('*');
n.split('/');
console.log(n);
}
4 Réponses :
Premièrement, je serais assortir à tous les opérateurs de mathématiques de base pour obtenir leur commande: puis, diviser la chaîne: p> newArr = newArr.join(' ')
Je crois que c'est, puisqu'il a dit que le problème est que la production de console.log est la valeur d'entrée complète.
Édité la réponse, je crois que cela répond à cette question maintenant.
Pour obtenir des chiffres, vous pouvez utiliser remplacer la fonction et scinder le code de contrôle ci-dessous:
function posNeg() {
// hiddenText is a <input> element. This is not shown.
let n = "100/5*30-60+333";
n = n.replace('+','|+');
n = n.replace('-','|-');
n = n.replace('*','|*');
n = n.replace('/','|/');
n=n.split('|');console.log(n);
// to use any caracter from array use it in removeop like example
// if we have array (split return) have 100 5 30 60 333 we get 100 for example
// we need to make removeop(n[0]) and that reutrn 100;
// ok now to replace last value to negative in string you can just make
// var lastv=n[n.length-1];
// n[n.length-1] ='(-'+n[n.length-1])+')';
//var newstring=n.join('');
//n[n.length-1]=lastv;
//var oldstring=n.join('');
}
function removeop(stringop)
{
stringop = stringop.replace('+','');
stringop = stringop.replace('-','');
stringop = stringop.replace('*','');
stringop = stringop.replace('/','');
return stringop;
}
Une fois que vous l'avez divisé, comment le remettez-vous ensemble?
Si vous avez vraiment besoin d'ajouter "()", vous pouvez modifier en conséquence
Disons que la chaîne est "100/5 * 30-60 + 333". Le résultat que je veux est "100/5 * 30-60 + (- 333)", et je veux le convertir en positif ("100/5 * 30-60 + 333"). P>
Le code suivant fait que: P>
let str = "100/5*30-60+(-333)"; str = str.replace('(-', '').replace(')', ''); console.log(str); // 100/5*30-60+333
Mais ... pourquoi voulez-vous faire ça?
Ce ne serait-il pas essentiellement un non-op? Je ne comprends pas la partie de la conversion; Gardez juste l'original.