Javascript:切掉字符串的结尾

时间:2017-03-14 00:43:15

标签: javascript slice

我们说我有以下字符串:

x = 'Johnny_button'
y = 'Rebecca_button'
z = 'Alex_button'

我只想在' _button'之前说出这个词。 (又名)。如何使用javascript切掉最后一部分? .slice()方法似乎没有像我期望的那样工作:

x.slice(-1, -7)
# ""
y.slice(-1, -7)
# ""

5 个答案:

答案 0 :(得分:3)

0函数中使用slice()作为第一个参数。



var x = 'Johnny_button',
    y = 'Rebecca_button',
    z = 'Alex_button';
    
    console.log(x.slice(0, -7));
    console.log(y.slice(0, -7));
    console.log(z.slice(0, -7));




答案 1 :(得分:2)

您可以将.replace()RegExp /_.*$/

一起使用
var res = str.replace(/_.*$/g, "")

.indexOf().slice()

var res = str.slice(0, str.indexOf("_"))

答案 2 :(得分:1)

使用0代替-1,它会起作用。您希望在索引0(输入的开头)开始选定的子字符串,而不是在最后一个字符之前。

答案 3 :(得分:0)

也许,你可以试试'分裂'的方法。它将返回如下数组:

var a = 'Johnny_button'.split('_');
var name = a[0];
console.log(name);

MDN split

答案 4 :(得分:0)

您也可以使用匹配,但我认为guest271314的答案更好:



['Johnny_button','noUnderscore','_nothingBefore'].forEach(
  function (s) {
    console.log( s + ' => ' + (s.match(/^[^_]*/) || [])[0] );
  });