两个已知字符之间的子字符串
Substring between 2 known chars
我正在寻找一种快速而廉价的方式从url中获取子字符串,如下所示:
https://docs.google.com/spreadsheets/d/1oZK-vdEf2rvBhvAmdrKt1xHNlCehVV-WHDShkZUUaBM/edit#gid=0
我后面的部分是:
1oZK-vdEf2rvBhvAmdrKt1xHNlCehVV-WHDShkZUUaBM
所以我们知道我们需要的是第4个'/'和第5个'/'之间的值(从零开始的索引)。
一个解决方案可能是这样的:
function getPosition(str, m, i) {
return str.split(m, i).join(m).length;
}
var url = https://docs.google.com/spreadsheets/d/1oZK-vdEf2rvBhvAmdrKt1xHNlCehVV-WHDShkZUUaBM/edit#gid=0;
var firstOccurence = getPosition(url,'/',4);
var secondOccurence = getPosition(url,'/',5);
var result = url.substring(firstOccurence, secondOccurence);
有什么改进的建议吗?可以不调用getPosition()
2次吗?
您可以使用split方法从String:
var result = url.split('/');
它将返回一个数组,你可以通过索引访问你想要的部分:
result[4];
甚至:
result.slice(-2)[0];
使用字符串字面值可以将其缩短为:
url.split`/`[4]
希望有帮助
你可以使用regex:
var url = 'https://docs.google.com/spreadsheets/d/1oZK-vdEf2rvBhvAmdrKt1xHNlCehVV-WHDShkZUUaBM/edit#gid=0';
var result = url.match(/spreadsheets'/d'/([^'/]+)'/?/);
if(result){
console.log(result[1])
}
var url = 'https://docs.google.com/spreadsheets/d/1oZK-vdEf2rvBhvAmdrKt1xHNlCehVV-WHDShkZUUaBM/edit#gid=0';
var part = url.replace('https://', '').split(/'//g)[3]
console.log(part)
相关文章:
- 删除图形和数字之间的连字符(-)符号
- 在::之间只允许使用a-z和a-z字符
- 如何在jQuery中搜索两个字符之间的字符串
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- Javascript-使用Regex获取两个字符之间的字符
- 在数组中的偶数之间插入连字符
- 如何获取特定字符之间的值
- Regex表达式,用于替换两个字符(包括字符)之间的字符串
- 我想在链接之间隐藏一个字符
- 通过JQuery在网页上的两个字符之间放置空格
- Regex,它搜索一个起始字符,介于两者之间的任何字符,然后是一个结束字符
- 如果两个波浪号字符之间的字符计数大于60,则在两个波浪字字符之间添加波浪号
- 删除Javascript中特定字符之间的所有内容
- 如何在字符之间进行匹配,但不将它们包含在结果中
- javascript:如何使用regex删除两个特殊字符之间的逗号(,)
- 匹配所有字符减去尾部空白,然后匹配大括号之间的字符
- 获取javascript中以a到Z之间的特定字符开头的第一个文本的位置
- Base64在PHP和JavaScript之间使用加号或与号字符对字符串进行编码
- 如何提取两个字符之间的字符串
- 空格上的正则表达式匹配 - 排除多组字符之间的空格