2017-08-24 40 views
0

刪除角色,我有像如何從固定字符串

V = "Val1,Val2;Val3"

值。在這種情況下,如果我需要單獨的「VAL1,VAL2」從VI現在用這個

var newVal = V.substr(0, V.indexOf(";"));

但是,這種情況是這樣的一些價值faling

V = "Val4;Val1,Val2;Val3"

任何想法如何只採取具有「,」的值,並刪除由「;」分隔的所有其他字符。

+1

對此使用'regex' –

+1

究竟是什麼邏輯?任何符合[正則表達式](http://regular-expressions.info)'\ w +,\ w +'...? (提示提示) – deceze

+0

讓我試試這個與正則表達式 –

回答

5

使用正則表達式

\w+,\w+ 

解決這個

function match(str){ 
 
    return str.match(/\w+,\w+/g); 
 
} 
 

 
console.log(match('a;b,c;d')); 
 
console.log(match('a,b;c'));

+0

這是工作的小值,但如果不長的價值。我正在嘗試這個。 ''「拜仁慕尼黑德國;韋恩魯尼,曼徹斯特聯隊;梅西踢巴塞羅那」' –

+0

你的預期輸出是什麼?這與單詞 – marvel308

+0

之間的空格有關Ya在這種情況下,我的輸出應該是'wayne rooney,manchester united' –

1

使用\w+(?=,)正則表達式來獲取所有這些值

+0

你的意思是'var newVal = V.match( \ w +(?=,)) –

+0

V.match(/ \ w +(?=,)/ g) – Ashvin777

0

您也可以分割上分號,然後過濾結果ar ray在逗號上。
並獲取該濾波數組的第一個元素。

例片段:

var V = "Val1;Val2,Val3;Val4;Val5,Val6,Val7;Val8"; 
 

 
var value = null; 
 
var array = V.split(';').filter(function(x){return x.indexOf(',')>-1}); 
 
if (array && array.length > 0) value = array[0]; 
 

 
console.log(array); 
 
console.log(value);

這種方法的好處是,當有超過2個字用逗號分隔它仍然工作。

相關問題