使用正则表达式检索字符串的某个部分

时间:2013-08-09 04:17:36

标签: javascript jquery regex

我是正则表达式的新手,我正在努力学习它,但我觉得它很混乱。

我的目标是从一些特定字符开始取出一大块字符串。

我想在/images

之后归还所有内容

实施例: 网址:https://www.google.com/images/srpr/logo4w.png

我想返回的内容:/images/srpr/logo4w.png

这是我的尝试:

var src = document.getElementById('image').getAttribute("src"),
    regex = src.match(/images/i);

console.log(regex);

jsFiddle

4 个答案:

答案 0 :(得分:2)

使用以下正则表达式。

regex = src.match(/.images.*/i);
console.log(regex[0]);

检查这个小提琴Demo

修改

实际上正则表达式开头的点会匹配任何字符,因此在这种情况下你甚至可以用正斜杠替换它。 (正斜杠是一个特殊的字符,所以用反斜杠逃脱)

regex = src.match(/\/images.*/i);

答案 1 :(得分:2)

您也可以使用split()!对于像这样简单的事情,实际上不需要执行正则表达式。

string = src.split(/images/)[1];

将在src中的'/ images /'字符串之后拆分所有内容。

DEMO: http://jsfiddle.net/shannonhochkins/T74L7/11/

答案 2 :(得分:2)

您可以使用substringindexOf来实现您的目标:

var str = "https://www.google.com/images/srpr/logo4w.png";
console.log( str.substring( str.indexOf("/images" ) ) );

首先使用indexOf查找“/ images”的出现次数,然后使用substring抓取所有内容。

答案 3 :(得分:1)

使用正则表达式,然后应该这样做:

href.match(/^(https|http):\/\/[^\/]*(.*)$/)[2]

出于学习目的,我也在这里给出了一些描述:

^:字符串的开头
$:字符串结束
(https:http):这将使regx适用于两种协议
://:这是://
[^ /] *:这是域
(。*):这是剩下的路径

在正则表达式中,您将表达式放在()中,以使其显示为返回值。

希望得到这个帮助。