我在JavaScript中有一个字符串,如下所示:
var str = "1:A;2:B;3:A;4:c;5:D";
字符串如何检索2前面的选项,即B。目前我使用for循环通过每;拆分字符串来实现这个,但我想知道是否有更好的方法来实现这一点而不使用循环概念。
2
B
;
rryofs0p1#
您可以使用split函数,如下所示;
var str = "1:A;2:B;3:A;4:c;5:D"; var result = str.split(":"); document.getElementById("Location").innerHTML = res[2];
字符串
2hh7jdfx2#
如果你知道这将是一个模式,你可以使用类似于:
var str = "1:A;2:B;3:A;4:c;5:D"; var i = 2; console.log(str[str.indexOf(i)+2]); //Output "B"
krugob8w3#
如果你想得到2前面的选项,你可以使用:1.一个循环(我的首选)1.第一个月
function getAnswer(str) { var position = str.indexOf(';2:') // not found in string, or '2' is the first answer if(position === -1) { return; } return str.substring(position - 1, position) }
zyfwsgd64#
可能递归的方法对你有帮助。
var str = "1:A;2:B;3:A;4:c;5:D", arr = str.split(";"), len = arr.length; function getVal(len){ if(len !== 0){ getVal(len-1); if(arr[len-1].indexOf(2) === 0){ console.log(arr[len-1].split(":")[1]) }; }; }; getVal(len);
ioekq8ef5#
var num = '2'; "1:A;2:B;3:A;4:c;5:D".match((new RegExp(num+"\\:([\\S\\s]+?)\\;", "")))[1];
字符串Fiddle它使用RegExp (正则表达式) 它的作用是在字符串中查找'2',然后获取与之关联的选项
我想不出更好的词,所以请原谅我。可以使用substring和**.indexOf()**
.indexOf()
var num = '2', string = "1:A;2:B;3:A;4:c;5:D", index = string.indexOf(num+':'); string.substring(index+num.length+1,index+num.length+2);
型Fiddle的
子字符串答案更容易理解,但下面的代码也是如此
var num = '2', string = "1:A;2:B;3:A;4:c;5:D"; string[string.indexOf(num+':')+num.length+1];
这应该在大多数情况下都有效。如果它的长度超过一个字母,也将获得该选项
var string = "1:A;2:B;3:A;4:c;5:D", num = '2', result; if (string.indexOf(';'+num+':') < 0) { result = string.match(new RegExp(num+"\\:([\\S\\s]+?)\\;", ""))[1]; } else { result = string.match((new RegExp('\\;'+num+"\\:([\\S\\s]+?)\\;", "")))[1]; }
型较短:
var string = "1:A;2:B;3:A;4:c;5:D", num = '2', result = string.indexOf(";"+num+":") < 0? string.match(new RegExp(num+"\\:([\\S\\s]+?)\\;",""))[1] : string.match(new RegExp("\\;"+num+"\\:([\\S\\s]+?)\\;",""))[1]; alert(result);
型Fiddle(我把它写成了一行程序)
wljmcqd86#
看起来很直接?
console.log(string.match(/(^|;)2:(\w*)/)[2]);
6条答案
按热度按时间rryofs0p1#
您可以使用split函数,如下所示;
字符串
2hh7jdfx2#
如果你知道这将是一个模式,你可以使用类似于:
字符串
krugob8w3#
如果你想得到2前面的选项,你可以使用:
1.一个循环(我的首选)
1.第一个月
JavaScript:
字符串
zyfwsgd64#
可能递归的方法对你有帮助。
字符串
ioekq8ef5#
RegExp
字符串
Fiddle
它使用RegExp (正则表达式) 它的作用是在字符串中查找'2',然后获取与之关联的选项
子串
我想不出更好的词,所以请原谅我。可以使用substring和**
.indexOf()
**型
Fiddle的
相似
子字符串答案更容易理解,但下面的代码也是如此
型
Fiddle的
防呆
这应该在大多数情况下都有效。如果它的长度超过一个字母,也将获得该选项
型
较短:
型
Fiddle(我把它写成了一行程序)
wljmcqd86#
看起来很直接?
字符串