求助js正则表达式替换

我有这样一个字符串:
/233/ziyuanku/Screenshot_2014-09-03-16-11-45.png
我想把前面的233替换掉,只保留后面的路径,即:/ziyuanku/Screenshot_2014-09-03-16-11-45.png

所有这样的字符串都是/开头,
之后接一个不定长数字id,
之后是路径名/abc/def/ghi.txt,可能会包含空格,也可能会有类似纯数字的长串,比如
/233/ziyuanku/5695446/my.png
这样

正则已经写出来了
'/\d+(.*)'

但是不知道用js如何做匹配和替换

阅读 2.5k
2 个回答
str.replace(/^\/\d+/, '')

注意, 这并不改变str本身, 你可以str = str.replace(...).

\/是转义字串的/, 因为js的正则对象是以/.../来声明的.

补充内容

s.replace(/\/[a-zA-Z0-9_-]+\.png$/, '')

为防你再问:

  • 如果还有别的后缀, 就改png(png | jpeg | gif)

  • 如果文件名还有别的特殊字符, 就加在[...]里面的最后

提醒, 这里是让你执行两次replace, 可写成方法链.

替换的时候要注意楼上说的坑。replace方法不会改变字符串本身

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