如何在下面修改现有代码,以便如果字符串中没有逗号,则只输出常规值。
function test() {
//alert(get_ref_docs('12345678,987654321,14439696',1))
alert(get_ref_docs('12345678',1)) -error received here.
alert(get_ref_docs('12345678',1)) -> would like the value alerted "12345678"
}
function get_ref_docs(str,num) {
/*Now strings will be a three element array where
strings[0] contains the full string
strings[1] contains the string before the first comma
strings[2] contains everything after the first comma
*/
var x = str.match(/([^,]*),(.*)/);
return x[num]
}
答案 0 :(得分:0)
我认为您可以使用此regex将此添加到您的代码中:
var x = str.match(/[^,]+/g);
return x && x[num] ? x[num] : str;
如果您的字符串包含逗号,并且您的num
是有效索引,您将获得您的价值。
如果没有,将返回原始字符串。
例如:
function test() {
console.log(get_ref_docs('12345678,987654321,14439696', 2));
console.log(get_ref_docs('12345678', 1));
console.log(get_ref_docs('12345678,987654321,14439696', 3));
}
function get_ref_docs(str, num) {
var x = str.match(/[^,]+/g);
return x && x[num] ? x[num] : str;
}
test();

答案 1 :(得分:0)
这里不需要正则表达式。只有split昏迷,如下:
function get_ref_docs(str, num) {
return str.split(",")[num - 1];
}