jquery正则表达式在首次出现匹配后替换所有内容

时间:2017-05-10 13:39:23

标签: javascript jquery regex

我希望在Stk.的第一场比赛后更换所有内容 使用此但不起作用:text.replace('/(Stk\.).*/','')

示例字符串(字符串是两行):

123456 50 Stk.
test Stk.

我想删除test Stk.,以便the first Stk.

之后的所有内容

2 个答案:

答案 0 :(得分:1)

您需要从正则表达式文字中删除单引号,使用[\s\S]匹配替换模式中的任何字符和反向引用:



var text = "123456 50 Stk.\ntest Stk.";
console.log(text.replace(/(Stk\.)[\s\S]*/,'$1'));




<强>详情:

  • (Stk\.) - 捕获第1组匹配Stk.子字符串并将其存储在内存缓冲区中,其内容可以通过字符串替换模式中的$1反向引用进行访问
  • [\s\S]* - 尽可能多地匹配任何0个或多个字符(因此,直到整个字符串的末尾,多行或不符合)。

答案 1 :(得分:0)

您可以使用split功能。

var string = "123456 50 Stk.\n test Stk."
var result = string.split('Stk');
console.log(result[0]);