我正在编写一个小函数来验证PowerController.IsPortOn(portNumber); // This number is 1-based
中的字符输入。
我的正则表达式只允许字符A-Z,句号和逗号。
只有在我第一次输入时,验证才会返回textarea
。然后它只返回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();

答案 0 :(得分:0)
如果要阻止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>
&#13;