jquery问题” replace“ 有疑问求助

Helloall 发布于 2014/07/31 21:55
阅读 217
收藏 0

var img = $(this).attr('src');

var imgs = new Image();

var rep=/(\.\w{3,4}$)/;

imgs.src = img.replace(rep, '_m$1');

例如地址:  localhost/m/1.jpg 会被替换为 localhost/1_m.jpg  ,我有一个疑问,正则表达式 /(\.\w{3,4}$)/应该是匹配 .jpg的吧?是不是啊? 那按照我想的应该是把.jpg给替换成1._m 。但是这个例子确是正确的,在文件名后缀前添加了_m.jpg。请指点。

我相信是我理解错了,请各位大牛指点迷津

加载中
0
sxgkwei
sxgkwei

/(\.\w{3,4}$)/  

在你的文本中,匹配  .jpg

/(\.\w{3,4}$)

括号,表示匹配好  .jpg 的文本,是一个分组,因为只有一个括号,所以是分组1,在替换中可以用 $1 表示 .jpg

'_m$1'

表示在分组1前面加  _m,也就是 .jpg 会被替换成 _m.jpg

sxgkwei
sxgkwei
回复 @_Obama : 这个就是你犯2咯撒,这是正则表达式的 分组 知识点,没有为什么,人家就是这么规定的,你可以去百度下嘛。
Helloall
Helloall
大师,为什么$1代表的是.jpg? $1在正则表达式中是什么意思
0
con
con

表达式匹配的是.jpg,捕获项$1是.jpg,所以这里的replace是吧.jpg替换成了_m.jpg

0
Shazi199
Shazi199
1.jpg → 1 .jpg → 1 _m.jpg
返回顶部
顶部