如果我要拆分最后一个单词,则拆分句子不起作用

时间:2018-06-25 12:14:10

标签: javascript jquery html arrays

我正在尝试通过删除某个单词来拆分句子 例如:

var word = "am";
var sentence = "Hello am I John?";

var stringpart2 = sentence.split(" ");
var stringpart1 = stringpart2.splice(0,stringpart2.indexOf(word));
stringpart2.remove(word);
stringpart1.remove(word);

var istring1 = stringpart1.toString();
var finalpart1 = istring1.replace(/,/g, " ");
var istring2 = stringpart2.toString();
var finalpart2 = istring2.replace(/,/g, " ");

现在这可行,因为它返回了以下内容:

finalpart1 = "Hello I"
finalpart2 = "John?"

但是当我将单词设为句子中的最后一个单词时:

var word = "John";

返回

finalpart1 = ""
finalpart2 = "Hello am I John?"

任何人都知道如何解决此问题,就像这样:

finalpart1 = "Hello am I?"
finalpart2 = ""

也许值得一提的是,我是从$ .getJSON数组中取出单词和句子的,如果单词是句子的第一个单词,就可以了。

2 个答案:

答案 0 :(得分:0)

您可以直接用单词分割:

var splitted = sentence.split(word);
console.log(splitted[0], splitted[1], etc...);

在这种情况下,如果您与John分手,它将看起来像您想要的。

答案 1 :(得分:0)

您可以使用以下正则表达式:

function replace(text, word) {
  return text.replace(new RegExp('\\s\\b' + word + '|' + word + '\\b\\s'), '')
}

const text = 'Hello am I John?'

console.log( replace(text, 'Hello') )
console.log( replace(text, 'am') )
console.log( replace(text, 'John') )