如何从javascript中提取子字符串并从原始字符串中减去它?

时间:2016-07-04 00:10:00

标签: javascript

我知道:

> original_string = "bears and cats and dogs"
'bears and cats and dogs'
> useful_array = original_string.match(/cats/)
[ 'cats', index: 10, input: 'bears and cats and dogs' ]
> sub_string = useful_array[0]
'cats'

我将如何获得:

> modified_string
'bears and and dogs'

谢谢

编辑:

> original_string = "bears and cats and dogs"
'bears and cats and dogs'
> original_string.replace(/cats/, "")
'bears and  and dogs'

但还有另外一种方法吗?我来自红宝石,所以对所有事情总是采用一种活泼的方法

1 个答案:

答案 0 :(得分:0)

方法1:使用.replace()

var original_string = "bears and cats and dogs";

var modified_string  = original_string.replace('cats ', '');

console.log(modified_string);

字符串有一个名为replace的方法,它接受各种参数,包括正则表达式,字符串,当然还有修饰符(g,i等)。

因此,只需使用字符串上的替换来将cats替换为'',就可以完成您所需的工作。

方法2:使用数组并过滤掉您不想要的内容

在您对问题进行编辑之后,另一种更复杂的方法是将字符串拆分为数组并过滤掉单词cats。然后用空格将数组重新加入一个字符串。

var original_string = "bears and cats and dogs";
var modified_string = original_string
  .split(/\s/)
  .filter(function(word) {
    return (word !== 'cats')
  })
  .join(' ');

console.log(modified_string);

方法3:通过获取子字符串索引删除,然后slice

当然,如果你想以你看起来的方式接近它,通过字符串上的索引,你可以这样做:

var original_string = "bears and cats and dogs";
var wordToReplace = 'cats ';

var index = original_string.indexOf(wordToReplace);
var modified_string = '';

if (index > -1) {
  modified_string = original_string.slice(0, index) + original_string.slice(index + wordToReplace.length);
}

console.log(modified_string);