Javascript:提取字符串中搜索到的单词之后的内容

时间:2019-03-13 13:35:23

标签: javascript

我有一个包含以下内容的字符串:

a test here as well .... Test: 1- (link) 2- (link)

我想搜索Test,然后得到它后面的内容。

我尝试了string.includes("Test"),但它只返回true或false

6 个答案:

答案 0 :(得分:5)

您可以匹配所需的单词,然后输入所有字符。

var string = 'a test here as well .... Test: 1- (link) 2- (link)',
    part = string.match(/Test(.*$)/)[1];
    
console.log(part);

如果字符串可能不匹配,则可以为null值添加默认数组,并获取undefied而不是不匹配的部分。

var string = 'a test here as well .... Test: 1- (link) 2- (link)',
    part = (string.match(/TestX(.*$)/) || [])[1];
    
console.log(part);

答案 1 :(得分:1)

一种简单的方法是在所需文本上split()上的字符串,结果[1]将是分割字符串之后的文本。

所以...

var s = 'a test here as well .... Test: 1- (link) 2- (link)';
var splitText = 'Test'
var result = s.split(splitText)[1];

希望有帮助。

答案 2 :(得分:1)

您可以在正则表达式中使用捕获组来捕获匹配模式(您的字符串)之后的所有内容。在下面的测试中,如果找到了该值,则将其存储在$1对象的RegExp中。

const str = 'a test here as well .... Test: 1- (link) 2- (link)'

if ( /Test(.*)$/.test(str) )
  console.log(RegExp.$1)

这是实现以上功能的另一种方法:

const text = 'a test here as well .... Test: 1- (link) 2- (link)'
console.log( trailing(text, 'Test') )


  
  
function trailing(str, pattern){
  const re = new RegExp(`${pattern}(.*)$`)
  if ( re.test(str) )
    return RegExp.$1.toString()
  return '' // false and default condition
}

答案 3 :(得分:0)

您可以获取单词的索引,然后获取子字符串。

let str = 'a test here as well .... Test: 1- (link) 2- (link)',
    word = 'Test',
    substring = '';
if(str.indexOf(word) > -1) {
    substring = str.substr(str.indexOf(word) + word.length);
}
console.log(substring);

答案 4 :(得分:0)

我相信lastIndexOfsubstr很适合您的情况:

let text = 'a test here as well .... Test: 1- (link) 2- (link)'
let position = text.lastIndexOf('Test: ')
let result = position > -1 ? text.substr(position + 6) : ''
console.log(result)

答案 5 :(得分:0)

  • 首先,您需要获取所搜索元素的索引:indexOf
  • 然后,您可以使用slice方法来提取包含关键字的文本。

我还创建了一个demo,可以帮助您理解。

const getAfterText = (allText, keyword) => {
  return allText.slice(allText.indexOf(keyword));
};