2010-06-09 39 views
0

我想用JS正则表达式来采取一个字符串,如下列:正则表达式,更换道路资源,修改资源名称

'http://www.somedomain.com/some_directory/some_other_directory/some_image.jpg' 

,把它变成这样:

'http://www.some_other_domain.com/another_directory/yet_another_directory/size1_some_image.jpg' 

任何提示?此外,书籍或其他资源的任何指针,可以轻松地介绍如何在JS和其他语言中掌握正则表达式?

回答

0

这应该可以做些你想要的东西。

正则表达式文字:/http:\/\/www\.somedomain\.com\/some_directory\/some_other_directory/\/(.+?)\.jpg/g

更换:“http://www.some_other_domain.com/another_directory/yet_another_directory/size1_ \ 1.JPG”

这是假设图像的名字是在这个表达式中的变量的唯一的事,也让大家使用的能力无论您需要替换其他网址,您都可以将其更改为https或ftp或任何您需要的内容。

此链接应有助于为正则表达式测试仪和参考,具有对信息和测试三个正则表达式语法的能力:http://www.regextester.com/

...但如果你正在使用的字符串仅仅是URL本身,那么正如SilentGhost所说的那样,这里对于正则表达式并没有什么用处。

1

在这种情况下,简单的字符串的方法会做:

url = 'http://www.somedomain.com/some_directory/some_other_directory/some_image.jpg'; 
bits = url.split('/'); 
'http://abc.com/def/ghi/' + bits[bits.length-1] 

当然,正则表达式将工作太:

'http://abc.com/def/ghi/' + url.match(/\/([^\/]+)$/)[1] 

但它是不必要的。

+0

按照jerome的说法,这应该是''http://abc.com/def/ghi/size1_'+ bits [bits.length-1]'。 – JAB 2010-06-09 13:50:05

+0

@jab:你注意到jerome没有使用'abc.com/def/ghi'吗? – SilentGhost 2010-06-09 13:54:30

+0

'http:// www.some_other_domain.com/another_directory/yet_another_directory/size1_'然后,使用jerome的示例URL和文件名前缀。 – JAB 2010-06-09 14:15:07