2017-11-01 28 views
-2

文字列にコンマが含まれていない場合、正規の値が出力されるように、既存のコードをどのように変更できますか?文字列にコンマが含まれているかどうか確認する

var x = str.match(/[^,]+/g); 
return x && x[num] ? x[num] : str; 

あなたの文字列にカンマが含まれており、あなたのnumはあなたの値を取得する有効な指標である場合:

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

あなたの文字列に、あなたの関数にargを渡している複数の値がある場合はどうなりますか? –

+0

'([^、] *)(?:、(。*))?'? – ctwheels

答えて

0

私はあなたがこのregexがあなたのコードにこれを追加使用できると思います。 そうでない場合は、元の文字列が返されます。例えば

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();

0

ここで正規表現の必要はありません。

function get_ref_docs(str, num) { 
    return str.split(",")[num - 1]; 
} 
関連する問題