Javascript精确的子串

时间:2015-08-20 15:18:06

标签: javascript console.log substring

如何从"Melbourne is"打印"Melbourne is great"的子字符串? (注意空格),使用console.log?

2 个答案:

答案 0 :(得分:0)

如果要删除字符串的最后一部分,可以将其拆分为数组。然后删除其中的最后一个元素,然后再将它连接回一个字符串:

var str = "Melbourne is Great";
var temp = str.split(' ');
temp.pop(); // remove last element
var out = temp.join(' '); // "Melbourne is"

替代方法,如果你想在2.空格后删除所有内容,你可以找到该空间的索引。然后使用该索引创建一个子字符串:

var str = "Melbourne is Great";
// String.prototype.indexOf(needle[, offset]);
var index = str.indexOf(' ', str.indexOf(' ')+1);
var out = str.slice(0, index);

如果你想保留所有的东西"伟大"你可以使用与上面相同的方法。

你也可以使用临时数组:

var str = "Melbourne is Great";
var temp = str.split(' ');
// Make a new array that contains the first to elements from temp, then join it on space.
var out = temp.slice(0, 2).join(' ');

答案 1 :(得分:0)

有几种不同的方法可以解决这个问题:

  1. 如果您知道要删除最后一个字,可以使用substrlastIndexOf剪切最后一个空格:

    var str = 'Melbourne is great';
    return str.substr(0, str.lastIndexOf(' '));
    
  2. 如果您知道自己需要前两个单词,可以使用正则表达式replace来匹配短语的一部分并返回该部分:

    var str = 'Melbourne is great';
    return str.replace(/([^ ]+ [^ ]+).*/, '$1');
    
  3. 如果您想获得一定数量的前导(或尾随)字词,可以使用splitslice将字符串分解为单词代币:

    var str = 'Melbourne is great';
    return str.split(' ').slice(0, 2)
    
  4. 在几乎所有语言中都有很多可能的方法来处理字符串操作,最好的选择实际上取决于你的确切用例。

    有关更多参考,请查看MDN's String page,其中列出了字符串对象上可用的所有方法。