2017-06-11 75 views
1

我正在使用以下代碼獲取用戶輸入的電話號碼。我想驗證用戶輸入,如果它不正確,需要請求用戶再次輸入。如何驗證bot框架中的電話號碼?

[function (session, results, next) { 
    builder.Prompts.text(session, 'I will also need to know your contact number.'); 
} 
,function (session, results, next) { 
    session.userData.contactNo = results.response; 
    next(); 
}] 

我試過this example,但它給出了一個警告說它已被棄用。欣賞任何關於正確方式的幫助(不使用已棄用的方法)。我的電話號碼正則表達式是^[689]\d{3}\s?\d{4}$

回答

2

有一個在documentation一個有趣的例子:

bot.dialog('/phonePrompt', [ 
    function (session, args) { 
     if (args && args.reprompt) { 
      builder.Prompts.text(session, "Enter the number using a format of either: '(555) 123-4567' or '555-123-4567' or '5551234567'") 
     } else { 
      builder.Prompts.text(session, "What's your phone number?"); 
     } 
    }, 
    function (session, results) { 
     var matched = results.response.match(/\d+/g); 
     var number = matched ? matched.join('') : ''; 
     if (number.length == 10 || number.length == 11) { 
      session.endDialogWithResult({ response: number }); 
     } else { 
      session.replaceDialog('/phonePrompt', { reprompt: true }); 
     } 
    } 
]); 

在這裏你可以看到,在功能處理的結果,他們正在執行一些檢查,然後如果沒有有效的他們使用reprompt參數執行replaceDialog

您可以在這裏嘗試與您的業務邏輯相同(即:在您的正則表達式中進行檢查,而不是樣本中的數字長度檢查)