簡體   English   中英

JavaScript 正則表達式測試函數在第一個 true 之后總是返回 false

[英]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.

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