J'ai besoin de supprimer le dernier mot après la virgule dans une chaîne.
Par exemple, j'ai une chaîne comme ci-dessous
var text = "abc, def, gh";
Je veux supprimer gh
dans cette chaîne
J'ai essayé comme ci-dessous
var text = "abc, def, gh";
var result = text.split(",");
var get = result.substring(-1, result.length);
alert(get);
Mais je reçois une erreur
Impossible de lire la propriété 'split' d'undefined
Aidez-moi, s'il vous plaît.
6 réponses
Vous pouvez y parvenir en utilisant des opérations de tableau:
var text = "abc, def, gh";
//create the array
var resArray = text.split(",");
//remove last element from array
var poppedItem = resArray.pop();
//change the final array back to string
var result = resArray.toString();
console.log(result);
Ou vous pouvez le faire par des opérations de chaîne:
var text = "abc, def, gh";
//find the last index of comma
var lastCommaIndex = text.lastIndexOf(",");
//take the substring of the original string
var result = text.substr(0,lastCommaIndex);
console.log(result);
Ici, j'utilise les méthodes lastIndexOf()
et substring()
. substring()
est utilisé pour collecter la chaîne de l'index Oth jusqu'au dernier espace vide.
<html>
<head>
<script>
function myFunction() {
var str = "abc, def, gh";
var lastIndex = str.lastIndexOf(" ");
str = str.substring(0, lastIndex);
document.getElementById("myText").innerHTML = str;
}
</script>
</head>
<body onload="myFunction()">
<h1>the value of string is now: <span id="myText"></span></h1>
</body>
Nous pouvons résoudre cela en utilisant une regex sans groupe de capture:
var text = "abc, def, gh";
text = text.replace(/(?=,[^,]*$).*/, "");
console.log(text);
Cette regex supprime stratégiquement juste le dernier mot de la liste CSV.
Voici une variante de ce qui précède qui utilise un groupe de capture:
text = text.replace(/(.*),.*/, "$1");
console.log(text);
Split retourne un tableau, vous devez le découper / pop car la sous-chaîne est une propriété d'une chaîne, ou vous pouvez utiliser regex comme autres mentions.
var text = "abc, def, gh";
var result = text.split(",");
var get = result.slice(0, result.length-1);
// or var get = result.pop();
alert(get);
Essaye ça,
var str = "abc, def, gh";
var result = str.substring(0, str.lastIndexOf(","));
alert(result);
var text = "abc, def, gh";
var str=text.replace(/(.*),.*/, "$1");
alert(str);
Questions connexes
De nouvelles questions
jquery
jQuery est une bibliothèque JavaScript, pensez également à ajouter la balise JavaScript. jQuery est une bibliothèque JavaScript multi-navigateur populaire qui facilite la traversée du Document Object Model (DOM), la gestion des événements, les animations et les interactions AJAX en minimisant les écarts entre les navigateurs. Une question marquée jQuery doit être liée à jQuery, donc jQuery doit être utilisée par le code en question et au moins les éléments liés à l'utilisation de jQuery doivent être dans la question.