js正则不支持后发断言,请问怎么解决?

比如说我想让字符串"2014年法律硕士考试提醒"匹配的结果为"法律硕士考试提醒"。如果可以用后发断言的话就直接"(?<=2014年).+"就行了。
现在怎么解决...

阅读 9.1k
5 个回答
var s = '2014年法律硕士考试提醒',
    pos = s.indexOf('2014年'),
    mt  = (pos >= 0 ? s.substr(pos+5):'');

直接 /2014年(.+)/ 不可以么...

var str = '2014年法律硕士考试提醒';
str.match(/2014年(.*)/g)
var matchResult = RegExp.$1;

然后matchResult就是你想要匹配的结果了。

采用对方案是把该替换掉的替换掉,该保留的用捕获组保留下来。实现如下:

const str = '2014年法律硕士考试提醒'.replace(/2014年(.*)/, '$1')

console.log(str) // 2014年法律硕士考试提醒
let hd = "2014年法律硕士考试提醒,20213年淘宝硕士考试提醒,20213年你说啥?提醒";
let reg = /[^\d年,]+(.*?)/gim;

console.log(hd.match(reg));`
//(3) ["法律硕士考试提醒", "淘宝硕士考试提醒", "你说啥?提醒"]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏