错误:javascript键的整数格式无效
例: -->错误无法自动将-123-12替换为-12312或123-替换为123,如何修复 我希望这是一个数字(允许0-9和-) 123--无效!但是-123是有效的 注意,错误:javascript键的整数格式无效,javascript,jquery,regex,Javascript,Jquery,Regex,例: -->错误无法自动将-123-12替换为-12312或123-替换为123,如何修复 我希望这是一个数字(允许0-9和-) 123--无效!但是-123是有效的 注意,RegExp/[^-?\d]/g允许?字符。如果预期结果允许0-9和-作为第一个字符,则可以使用[^\d+]而不使用?字符,前提是值.length为1且索引0处的值为-返回索引0处的值,并使用.slice()使用参数1,替换非-或\d+的字符,否则使用/(-)$/g替换输入末尾的-字符 $(文档)。在(“更改、键入”、“输入
RegExp
/[^-?\d]/g
允许?
字符。如果预期结果允许0-9
和-
作为第一个字符,则可以使用[^\d+]
而不使用?
字符,前提是值.length
为1
且索引0
处的值为-
返回索引0
处的值,并使用.slice()
使用参数1
,替换非-
或\d+
的字符,否则使用/(-)$/g
替换输入末尾的-
字符
$(文档)。在(“更改、键入”、“输入[type=text])上,更新数量)代码>
可以删除“change,keyup”
处的逗号和选择器“input[type=text])”
处的额外
函数更新\u数量(){
$(this).val(函数(x,val){
返回val.length==1&&val[0]==“-”
?val[0]+val.slice(1)。替换(/[^\d+]/g,“”)
:val.replace(/(-)$/g,“”)
});
}
$(文档)。在(“更改键控”、“输入[type=text]”上,更新数量)代码>
这似乎就是您要寻找的:
虽然我个人会在change
或blur
上做,而不是在用户进入时剥离。或者更好的是,返回一个可见错误并阻止表单提交,而不是自动替换。我真的很讨厌做这种事情的表单字段。在我看来,这会造成糟糕的用户体验。你想做什么?在javascript
中有语法错误。预期的结果是什么?是否要将?
作为接受的输入?是否123---
有效输入?123----无效!但是-123有效吗?我想你要找的是/^-?[0-9]+$/
而且我不建议你在键盘上这样做。应该在change
或blur
<input type="text" name="quantity">
function update_quantity() {
$(this).val($(this).val().replace(/[^-?\d]/g, ''));
}
$(document).on("change, keyup", "input[type=text])", update_quantity);
123 -> valid
-123 -> valid
123- -> invalid
-1-12-123 -> invalid
-123-12 -> invalid
$(document).ready(function() {
$('input[name=quantity]').on('keyup',function() {
var v = $(this).val();
if (!v.match(/^-?[0-9]*$/))
$(this).val(v.replace(/(?!^-)[^0-9]/g,''));
});
});