使用Regex查找URL中的特定字符串
Find particular string inside URL with Regex
我需要"regex"——在JavaScript中——一个类似的字符串
http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre
我需要提取19232_102032_21111986_n
,即http://some.domain.com/v/v1.0-4/
和.jpg?param=fejrlwfje&list=fklwefljfre
之间的图像名称,并将其分配给一个变量。
您可以使用
'/([^'/?]+)'.jpg(?:'?|$)
查看regex演示
图案描述:
'/
-斜线([^'/?]+)
-与/
和?
以外的1个或多个字符匹配的组1(文件名)'.jpg
-文字.jpg
(?:'?|$)
-与?
或字符串末尾匹配的非捕获组
var s = 'http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre';
var m = s.match(/'/([^'/?]+)'.jpg(?:'?|$)/);
document.body.innerHTML = m ? m[1] : "No match!";
试试这个:
var s = "http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre"
var result = /'/([a-z_0-9]+)'.jpg/.exec(s)[1];
假设没有"?"在要匹配的字符串中,可以尝试:
/'/([^?/]*)('?|$)/.exec("http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre")[1].slice(0,-4)
这将匹配最后一个"/"之后的所有字符,这些字符不是"/"或"?"在"?"之前或字符串的末尾。
slice调用用于删除".jpg"部分。
作为一种替代方案,它可以通过使用String.split
、String.substr
和Array.lastIndexOf
函数在没有regex的情况下实现:
var url = "http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre",
url_part = url.split("?")[0],
img_file = url_part.substr(url_part.lastIndexOf("/")+1).split(".")[0];
console.log(img_file); // "19232_102032_21111986_n"
相关文章:
- 制作一个regex来验证只有一个数字的字符串
- Datatables查询url字符串:需要regex来修复url解析
- 用于查找子字符串的Regex
- Regex,用于从字符串中筛选关键字
- RegEx只匹配JSON字符串中最里面的数组
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- RegEx以匹配字符串中的两个或多个名称
- Regex模式匹配,从Javascript中的字符串中提取时间,结果出乎意料
- JavaScript Regex,用于由特定字符串包围的数字和空格
- 从Regex模式获取子字符串
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- Regex-从字符第N次出现到字符串末尾的匹配
- regex来构建字符串,直到遇到第N个匹配项
- 使用Regex修改字符串
- 在 JavaScript 字符串 (regex) 中插入多个换行符 (CodeMirror)
- 匹配引号之间的随机字符串Regex javascript
- 切换组合大小写字符串regex和数字
- Javascript从子字符串regex中提取
- Javascript替换字符串regex
- 从类似JSON的字符串Regex中生成有效的JSON