簡體   English   中英

如何在按鍵事件中僅允許特定打印范圍內的字符?

[英]How to allow only characters on key press event for specific print range?

<input type="text" name="RangeText" id="rangeNum" onkeypress = "printValidation(event)" />

我試圖在上述打印選擇文本框中僅允許特定頁面范圍的按鍵事件上的字符。 我可以使用正則表達式輕松完成此操作,但希望用戶僅鍵入有效腳本!

我要達到的目標如以下示例所示:

1允許

1-2允許

-2不允許

1,2-3,4,5-7允許

1,2,3不允許

1-2-2不允許

這就是我當前的功能,棘手的部分似乎是不允許以負數開頭,但允許連字符在范圍內!

function printValidation(evt) {
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (!evt.shiftKey && !evt.altKey && !evt.ctrlKey && charCode >= 48 && charCode <= 57 || charCode == 188 || charCode == 109) {
        alert("character accepted");
        return true;
    }else {
            alert("illegal character detected");
            return false;
        }
 }

是否有可能不用正則表達式來實現這一目標?

建議您在執行操作時僅允許用戶鍵入有效字符(包括連字符,逗號和空格),並在末尾運行正則表達式(當您提交或失去該字段的焦點時)。 或者你可以用很大的填補你的函數if測試一切准備,恩。 只能在另一個非連字符,逗號或空格等字符之后使用連字符。您可以使用evt.currentTarget.value讀取字段的內容。 希望有幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM