正则匹配单行注释问题

2018-10-09 06:39:47javascript问题

如何匹配js中的单行注释?

我有一段字符串

var str = `
 //test 1
console.log('123'); //test 2
console.log('http://a.com')`;

str.match(/\/\/[^\n]*/g);

想匹配出//test 1 //test 2这种注释,而且排除掉http://a.com,该如何写正则呢

网友回答:

  • 浮囡 浮囡 2018-10-9 6:38 回复:
    已被采纳
/^\/\/\S*/g

/(?<!\:)\/\/\S*/g 排除掉 //前有:的情况


/(?<!\:)\/\/[^\n]*/g //匹配更完全
  • jsoncode jsoncode 2018-10-9 6:40 回复:浮囡
    这个会有点问题,如果开头不是//就挂了

  • 浮囡 浮囡 2018-10-9 6:43 回复:浮囡

    开头不是//还能是什么啊

  • 浮囡 浮囡 2018-10-9 6:48 回复:浮囡

    我改了下,你再试试

  • jsoncode jsoncode 2018-10-9 6:52 回复:浮囡
    很赞,现在js也支持 负向后瞻?<!exp 了。我稍微改了一下:/(?<!:)//[^\n]*/g 完美

  • 浮囡 浮囡 2018-10-10 9:30 回复:浮囡

    嗯,能直接匹配到行尾了,原来没考虑全