2012-08-06 82 views
1

我有以下的javascript不允許用戶輸入任何特殊字符到一個領域,但我確實想破例允許破折號( - ):反式表達式 - 允許破折號?

function Validate(txt) 
{ 
    txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, ''); 
} 

如何修改它將短劃線添加到允許的列表中?

回答

4

要允許破折號(-),所有你需要做的就是這個改變:txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, '');這樣的: txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, '');

注意,儀表板是一個特殊字符時,方括號(它表示一個範圍)封閉,因此必須最後在方括號內的地方。

@Tim Pietzcker的評論,你也可以逃避它txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r\-]+/g, '');或把它放在前面:txt.value = txt.value.replace(/[^-a-zA-Z 0-9\n\r]+/g, '');

+1

(或第一,或逸出)。 – 2012-08-06 13:23:59

+0

@TimPietzcker:謝謝你的提示,相應地更新了答案。 – npinti 2012-08-06 13:35:03

3

添加在您的字符類的末尾破折號(作爲最後一個字符):

txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, ''); 
1
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, ''); 

如果衝刺不是在最後,你也可以嘗試這個

[^a-zA-Z 0-9\n\-\r]+ //I only test this on rubular 

TEST

相關問題