我试图从一个更大的字符串中提取一个字符串,它得到了a:和a之间的所有东西;
当前的
Str = 'MyLongString:StringIWant;'
期望输出值
newStr = 'StringIWant'
我试图从一个更大的字符串中提取一个字符串,它得到了a:和a之间的所有东西;
当前的
Str = 'MyLongString:StringIWant;'
期望输出值
newStr = 'StringIWant'
当前回答
我使用@tsds的方式,但只使用分裂函数。
var str = 'one:two;three';
str.split(':')[1].split(';')[0] // returns 'two'
警告:如果字符串中没有“:”,访问数组的“1”索引将抛出错误!str.split(“:”)[1]
因此,如果存在不确定性,@tsds的方式更安全
str.split(':').pop().split(';')[0]
其他回答
var s = 'MyLongString:StringIWant;';
/:([^;]+);/.exec(s)[1]; // StringIWant
你也可以用这个…
function extractText(str,delimiter){ if (str && delimiter){ var firstIndex = str.indexOf(delimiter)+1; var lastIndex = str.lastIndexOf(delimiter); str = str.substring(firstIndex,lastIndex); } return str; } var quotes = document.getElementById("quotes"); // " - represents quotation mark in HTML <div> <div> <span id="at"> My string is @between@ the "at" sign </span> <button onclick="document.getElementById('at').innerText = extractText(document.getElementById('at').innerText,'@')">Click</button> </div> <div> <span id="quotes"> My string is "between" quotes chars </span> <button onclick="document.getElementById('quotes').innerText = extractText(document.getElementById('quotes').innerText,'"')">Click</button> </div> </div>
使用分割()
var s = 'MyLongString:StringIWant;';
var arrStr = s.split(/[:;]/);
alert(arrStr);
arrStr将包含所有由:或; 通过for循环访问每个字符串
for(var i=0; i<arrStr.length; i++)
alert(arrStr[i]);
我使用@tsds的方式,但只使用分裂函数。
var str = 'one:two;three';
str.split(':')[1].split(';')[0] // returns 'two'
警告:如果字符串中没有“:”,访问数组的“1”索引将抛出错误!str.split(“:”)[1]
因此,如果存在不确定性,@tsds的方式更安全
str.split(':').pop().split(';')[0]
一般的和简单的:
function betweenMarkers(text, begin, end) { var firstChar = text.indexOf(begin) + begin.length; var lastChar = text.indexOf(end); var newText =文本。substring (firstChar lastChar); 返回newText; } console.log (betweenMarkers(“MyLongString: StringIWant ;",":",";"));