2015-10-25 38 views
1

我想在整個網站中創建可重用的驗證函數。以下是我目前正在處理的內容。我被困在模式與正則表達式不匹配的地方。請指導我這樣做的正確方法。將正則表達式轉換爲可重用函數

function match_str(str, pattern){ 
    mask = "/^[" + pattern + "]+$/"; 
    check = mask.test(str); 
    return check; 
} 

錯誤消息:掩模不是函數

function match_str(str, pattern){ 
    mask = /^[pattern]+$/; 
    check = mask.test(str); 
    return check; 
} 

錯誤消息:始終返回false

//Usage 
alert(match_str('test', 'a-z')); 

回答

4

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Description

有兩種方法可以創建RegExp對象:文字符號和 構造函數。要指示字符串,字面 表示法的參數不使用引號,而構造函數 的參數使用引號。

假設你需要動態創建的正則表達式,你需要使用構造 - 根據您的要求,可能就像這樣:

function match_str(str, pattern){ 
    var mask = new RegExp("^[" + pattern + "]+$"); 
    var check = mask.test(str); 
    return check; 
} 
+0

啊我今天新learn't東西。謝啦! –

+0

@紅色病毒 - 謝謝!如果這解決了您的問題,請您考慮將此答案標記爲已接受,讓社羣知道這個問題已解決? http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – ziesemer

相關問題