正则文本之后和Javascript中行结束之前的正则表达式

时间:2016-12-17 18:11:44

标签: javascript regex

输入:

Placed on: Nov 17, 2016 2:27pm

预期结果

Nov 17, 2016 2:27pm

Javascript不支持lookbehind,经过几个小时的寻找解决方案 - 这就是我目前所拥有的:

[^o][^n]+(?=$)

但即使它在http://regexr.com/3et93工作,它也无法在javascript中运行......还有其他想法吗?

PS:前两个单词总是放在:(11个字符)......

3 个答案:

答案 0 :(得分:2)

有几种方法可以实现您的需求,其中一些甚至不需要正则表达式。他们在这里:

  • 用空字符串替换Placed on:

console.log(
  "Placed on: Nov 17, 2016 2:27pm".replace("Placed on: ","")
);

  • 你提到前两个单词总是放在:(11个字符)。。使用substr

console.log(
 "Placed on: Nov 17, 2016 2:27pm".substr(11)
);

答案 1 :(得分:0)

使用括号捕获Placed on:后的所有字符。 match将为您提供包含捕获字符串的数组。



str = "Placed on: Nov 17, 2016 2:27pm";
result = str.match(/^Placed on:(.*)/);
console.log(result[1]);




答案 2 :(得分:0)

str = "Placed on: Nov 17, 2016 2:27pm";
console.log(str.match(/:\s*(.*)/)[1]);

在这里了解正则表达式:https://regex101.com/r/6eLc73/1

或者,如果我们想要使用Placed on text:

试试这个。

str = "Placed on: Nov 17, 2016 2:27pm";
console.log(str.match(/^Placed\s*on:\s*(.*)/)[1]);

最好使用\s而不是硬编码的单个间距。