我需要在字符串中删除逗号之后的最后一个单词。
例如,我有下面的字符串
var text = "abc, def, gh";
我想删除该字符串中的gh
我试过以下
var text = "abc, def, gh";
var result = text.split(",");
var get = result.substring(-1, result.length);
alert(get);
但我得到错误
无法阅读属性'拆分'未定义的
请帮帮我。
答案 0 :(得分:3)
var text = "abc, def, gh";
var str=text.replace(/(.*),.*/, "$1");
alert(str);

答案 1 :(得分:3)
您可以使用数组操作实现此目的:
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);

或者你可以通过字符串操作来完成:
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);

答案 2 :(得分:1)
试试这个,
var str = "abc, def, gh";
var result = str.substring(0, str.lastIndexOf(","));
alert(result);
答案 3 :(得分:1)
Split返回一个数组,你应该切片/弹出它,因为子字符串是一个字符串的属性,或者你可以像其他提到的那样使用正则表达式。
function clipCanvas(ctx, ignoreABGR){
var x, y, i, left, right, top, bottom, imgDat;
const w = ctx.canvas.width;
const h = ctx.canvas.height;
const data = new Uint32Array((imgDat = ctxS.getImageData(0,0,w,h)).data.buffer);
left = w
i = right = 0;
for(y = 0; y < h; y+=1){
for(x = 0; x < w; x+=1){
if(data[i++] !== ignoreABGR){
top = top === undefined ? y : top;
bottom = y;
left = x < left ? x : left;
right = x > right ? x : right;
}
}
}
// add bounds return
// return {left,top,width : (right - left) + 1, height :(bottom - top) + 1};
ctx.canvas.width = (right - left) + 1;
ctx.canvas.height = (bottom - top) + 1;
ctx.putImageData(imgDat, -left, -top);
return ctx;
}
答案 4 :(得分:1)
我在这里使用lastIndexOf()
和substring()
方法。 substring()
用于从Oth索引收集字符串到最后一个空格。
<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>
答案 5 :(得分:0)
我们可以使用没有捕获组的正则表达式来解决这个问题:
var text = "abc, def, gh";
text = text.replace(/(?=,[^,]*$).*/, "");
console.log(text);
&#13;
此正则表达式策略性地删除了CSV列表中的最后一个单词。
以上是使用捕获组的上述变体:
text = text.replace(/(.*),.*/, "$1");
console.log(text);