[英]JavaScript regex test function always returns false after the first true
我正在編寫一個小函數來驗證textarea
字符輸入。 我的正則表達式只允許字符 AZ、句號和逗號。
驗證僅在我第一次輸入時返回true
。 然后它只返回false
,無論我輸入什么字符。 這很令人困惑。 你能幫我嗎?
下面是函數。
var _checkRemainingCharsWords = function() { $('#textarea-content').on('input', function() { var regExNumbers = /^[a-zA-Z,.]+$/; var strTest = regExNumbers.test(this.value); if (strTest) { console.log("valid", this.value); } else { console.log("wrong", this.value); return false; } }); }; _checkRemainingCharsWords();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <textarea id="textarea-content" ></textarea>
如果要阻止key
,則需要使用keydown
功能和無效字符,使用event.preventDefault()
或使用keyup
並替換所有無效字符。 對於演示,我添加了一個簡單的正則表達式來替換數字。
var _checkRemainingCharsWords = function() { $('#textarea-content').on('keyup', function() { var regExNumbers = /^[a-zA-Z,.]+$/; var strTest = regExNumbers.test(this.value); if (this.value) { if (strTest) { console.log("valid", this.value); } else { console.log("wrong", this.value); var numReg = /\\d/gi; this.value = this.value.replace(numReg,''); return false; } } }); }; _checkRemainingCharsWords();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <textarea id="textarea-content"></textarea>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.