在字符串jquery

时间:2017-12-30 05:57:28

标签: jquery

我需要在字符串中删除逗号之后的最后一个单词。

例如,我有下面的字符串

var text = "abc, def, gh";

我想删除该字符串中的gh

我试过以下

var text = "abc, def, gh";
var result = text.split(",");
var get = result.substring(-1, result.length);
alert(get);

但我得到错误

  

无法阅读属性'拆分'未定义的

请帮帮我。

6 个答案:

答案 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)

我们可以使用没有捕获组的正则表达式来解决这个问题:

&#13;
&#13;
var text = "abc, def, gh";
text = text.replace(/(?=,[^,]*$).*/, "");
console.log(text);
&#13;
&#13;
&#13;

此正则表达式策略性地删除了CSV列表中的最后一个单词。

以上是使用捕获组的上述变体:

text = text.replace(/(.*),.*/, "$1");
console.log(text);