2015-06-24 25 views
0

編輯:我使用從Github的twitch-irc庫Node.js,通過npm安裝。Node.js - 如何解析通過IRC聊天消息傳遞的參數

這是這樣一個基本的問題,我覺得好像有點詢問白癡的,但是......

if (message.toLowerCase().indexOf('!os') === 0) { 

} 

比方說,我用這個代碼,如何將添加如果參數語句用戶提供?通過這個,我的意思是在輸入!os之後,他們會創建一個空間並輸入其他內容,這可能是第0或第1個參數。

是否可以只使用這個?:

if (message.toLowerCase().indexOf('kernel') === 4) { 

} 

在僞代碼,我想做的事:

if (firstargument === 'kernel') { 
    //Do stuff. 
} 

謝謝您的時間。

回答

2

你可以簡單地使用var args = message.match(/\S+/g)讓所有的arguements(包括「OS!」)在數組中,並根據需要使用它們。

例如

var args = message.match(/\S+g/); 
var cmd = args[1]; //do a length check before accessing args[1] though 
switch (cmd) { 
    case 'kernel': 
    // do stuff 
    break; 
    case 'process': 
    // do stuff 
    break; 
    default: 
    // invalid command 
} 
+0

我的答案被關閉了。這是一個非常好的方法(所以+1);我必須記住這一個。我不知道用'match'來做到這一點。 – Blubberguy22

+0

我用var args = message.match(/ \ S + g /); console.log(args);並且console.log返回null,不管我輸入什麼內容!os – Keydose

+0

'console.log(message)'print? – galactocalypse

1

你說的話會有意義,但你應該刪除空格(空格),這樣像!os kernel這樣的命令仍然可以工作(注意兩個空格)。

是這樣做的:

if (message.replace(/\s\g, '').toLowerCase().indexOf('kernel') === 3) { 
//Do stuff 
} 
+0

我注意到您編輯您的文章基本上這包括當我完成了一半寫它,因此我適時改變我的答案。 – Blubberguy22