我正在尝试寻找一种从其他两个子字符串之间提取子字符串的干净方法,到目前为止,我可以基于特定字符而不是字符串来实现此目的。例如(这不起作用)
var element = "Firstconstantmystring_lastconstant";
var mySubString = element.substring(
element.lastIndexOf("Firstconstant") + 1,
element.lastIndexOf("_lastconstant")
);
我正在尝试从完整字符串中提取“ mystring”。我知道“ Firstconstant”和“ _lastconstant”将始终相同。感谢您的帮助。
答案 0 :(得分:3)
您可以使用正则表达式。
var string = 'Firstconstantmystring_lastconstant'
console.log(string.match(/(?<=Firstconstant)[\s\S]*(?=_lastconstant)/))
这将返回一个数组,如果有匹配项,则返回第一个元素为所需的结果;如果没有匹配项,则返回null
。
资源:
答案 1 :(得分:1)
您应该从第一个开始输入 length :
var element = "Firstconstantmystring_lastconstant";
var mySubString = element.substring(
"Firstconstant".length,
element.lastIndexOf("_lastconstant")
);
console.log(mySubString);
答案 2 :(得分:1)
function substringBetween(s, a, b) {
var p = s.indexOf(a) + a.length;
return s.substring(p, s.indexOf(b, p));
}
var element = "Firstconstantmystring_lastconstant;";
var mySubString = substringBetween(element,'Firstconstant','_lastconstant')
console.log({mySubString })