我是正则表达式的新手,我正在努力学习它,但我觉得它很混乱。
我的目标是从一些特定字符开始取出一大块字符串。
我想在/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);
答案 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 /'字符串之后拆分所有内容。
答案 2 :(得分:2)
您可以使用substring
和indexOf
来实现您的目标:
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适用于两种协议
://:这是://
[^ /] *:这是域
(。*):这是剩下的路径
在正则表达式中,您将表达式放在(
和)
中,以使其显示为返回值。
希望得到这个帮助。