前端正则匹配

想匹配到 已千米 为结尾的所有非数字字符
例如: let str = '123ja23x千米x123x千米'

 最后想得到是  12323123千米

 我的写法是
 let reg = /\D+[^(千米)$]/g
 str.replace(reg, '')
 结果 : 123323x千米

 但是不对  想请教一下 怎么写

阅读 1.7k
1 个回答

相当于把非数字字符清除,但是被清除的字符后面不能是,也不能是结束符$

'123ja23x千米x123x千米'.replace(/\D(?!米?$)/g, ''); // 12323123千米

不过可读性稍稍差了些,还不如'123ja23x千米x123x千米'.replace(/\D/g,'') + '千米'更直接些。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题