我有以下的javascript不允許用戶輸入任何特殊字符到一個領域,但我確實想破例允許破折號( - ):反式表達式 - 允許破折號?
function Validate(txt)
{
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, '');
}
如何修改它將短劃線添加到允許的列表中?
我有以下的javascript不允許用戶輸入任何特殊字符到一個領域,但我確實想破例允許破折號( - ):反式表達式 - 允許破折號?
function Validate(txt)
{
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, '');
這樣的: 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, '');
。
添加在您的字符類的末尾破折號(作爲最後一個字符):
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, '');
試試這個: [^ A-ZA-Z 0-9 \ n \ r - ] +
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
(或第一,或逸出)。 – 2012-08-06 13:23:59
@TimPietzcker:謝謝你的提示,相應地更新了答案。 – npinti 2012-08-06 13:35:03