2016-10-27 52 views
1

我有這樣的節點:分割字符串通過多個空格的NodeJS

>out 
'java 1303 root 187u CHR 166,0  0t0 14586 /dev/ttyACM0\n' 
>typeof out 
'string' 
> out.split("\\s+"); 
[ 'java 1303 root 187u CHR 166,0  0t0 14586 /dev/ttyACM0\n' ] 

我希望分割後的字符串,例如['java','1303','root'...]

+1

'.split(/ \ s + /)'? – Andrey

+1

'out.split(/ \ s + /)'。 '「\\ s +」'是一個字符串,編譯器將搜索確切的值而不是模式。使用正則表達式模式 – Rajesh

回答

5

謝謝您的意見。 似乎不需要引號都:

> out.split(/\s+/); 
+0

Split接受一個正則表達式 - 除了在java中,正則表達式不像字符串那樣被初始化 – baao

1

拆分與文字字符串\s+,它會分裂成"a\\s+b"ab

使用正則表達式,RegExp("\\s+")/\s+/(更好的,因爲該模式是靜態的):

var s = 'java 1303 root 187u CHR 166,0  0t0 14586 /dev/ttyACM0\n'; 
 
console.log(s.trim().split(/\s+/));

我也建議修剪輸入在開始擺脫空元素的/結束。

另請注意,.split(/\s+/g) = .split(/\s+/)(全局修飾符暗示String#split())。