2017-10-05 108 views
-1

第3個話,我想執行這樣的悄悄話功能:查找字符串AS3

var a = "/pm John Hello John! this is a private message"; 

    if(a.indexOf("/pm") >= 0){ 
     //It contains the String! 
      trace("Contains /pm"); 
      sendPM(toWho, Msg); 
     } 
     else{ 
     sendPublicMsg(); 
} 
  • 檢測是否/pm是字符串中,

  • 調用一個函數...

    • 使用第二個單詞(John
    • 也使用字符串的第三部分(Hello John! this is a private message)。
+0

其中一種方法是不是最有效的,我確信:'var splitted:Array = a.split (「」); if(splitted [0] ==「/ pm」){sendPM(splitted [1],a.replace(splitted [0] +「」+ splitted [1],「」));}' – kaarto

+1

@kaarto please add您的上述評論爲答案,因爲它是正確的。 –

回答

2

之一許多方面:

var a = "/pm John Hello John! this is a private message"; 
var splitted:Array = a.split(" "); 

if(splitted[0] == "/pm"){ 
    sendPM(splitted[1], a.replace(splitted[0] + " " +splitted[1],"")); 
} 

優勢indexOf這裏要說的是,現在你可以實際使用郵件中/pm如果你需要f.ex.教John如何使用這個功能。

+0

不錯,謝謝! – Alex

0

另一個的解決這一點的許多方式之一是通過使用正則表達式:

var a:String = "/pm John Hello John! this is a private message"; 
var privateMessagePattern:RegExp = /(\/pm) (\w+) (.*)/; 
if(a.search(privateMessagePattern) == 0) { 
    var aMessage:Array = a.match(privateMessagePattern); 
    var recipient:String = aMessage[2]; 
    var message:String = aMessage[3]; 
    sendPM(recipient, message); 
} else { 
    sendPublicMsg(); 
} 

aMessage陣列,從上面的代碼,將包含4個元件(第1個一個是原始的字符串並將下一個元素是由privateMessagePattern RegExp定義的3個組,如果RegExp不匹配,則Array將爲null,同時搜索方法返回的索引將爲-1

+0

這個也不錯,謝謝 – Alex