我有输入字段,其中包含数字和特殊字符,例如逗号和点 在计算字段的maxLength时,我想跳过特殊字符。
我不想限制特殊字符。
预期输出应为: - 1,234(总长度: - 4)
<form action="/action_page.php">
Username: <input type="text" maxlength="3" id="myId"/>
<input type="submit" value="Submit">
</form>
jsfiddle link here
答案 0 :(得分:2)
尝试添加此javascript:
window.onload = function() {
var textInput = document.getElementById("myId");
textInput.oninput = function() {
var temp;
temp = this.value.replace(/[^\w\s]/gi,'');
if (temp.length > 3) {
alert("Invalid"); // Or other stuff you want to do
}
};
};
请注意,此代码会实时检查输入
答案 1 :(得分:0)
这应该使用javascript:
完成var input = document.getElementById('myId');
input.addEventListener('keyup', function () {
// Checking length of string ignoring all non-digit and non-letter characters
if (this.value.replace(/[^\d|[^a-zA-Z]]*/g, '').length == 3) {
console.log('stop and do whatever you need')
}
})
答案 2 :(得分:0)
您可以尝试使用HTML5 pattern
属性。而不是maxlength
键入pattern
并给它一些正则表达式。可以做这样的事情:
<form action="/action_page.php">
Username: <input type="text" pattern="(?(?=^.\d{1,3},\d{1,3}$)^.{5}$|^.{4}$)" id="myId"/>
<input type="submit" value="Submit">
</form>