我有文本框,我需要以这样的方式进行验证,如果textbox为空,则不应该允许空格。如果文本框中有任何值,则只允许空格。我正在尝试下面的代码,但没有工作
var letters = /^[0-9a-zA-Z]+$/;
$("#input1").on("blur ", function() {
function alphanumeric(username) {
if (username.value.match(letters)) {
return true;
} else {
$('#input1').on('keypress', function(e) {
if (e.which == 32)
return false;
});
return false;
}
}
})
答案 0 :(得分:2)
为什么不修剪?
username.trim()
之后你可以返回匹配的结果。
答案 1 :(得分:2)
如果您使用的是表单,则不需要任何javascript
<form action='/'>
<input pattern="\s*\S+.*" title="space only is not allowed" required/>
<input type="submit">
</form>
答案 2 :(得分:1)
你的正则表达式似乎错了。 你不允许空格字符。
请尝试使用此代码:/\S/
\S
是任何非空格字符。
如果您想以角色开头,它将变为/^\S/
。
^
是您希望以下列字符开头的时间
$
是您希望以前一个字符
答案 3 :(得分:1)
在blur
事件上添加一个函数,该函数将修剪将删除前一个和后一个空格的值。如果该值为空,则会生成''
。
$("#input1").on("blur", function () {
if($(this).val().trim() === ''){
alert('empty value');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='input1' />
答案 4 :(得分:1)
你可以这样做:
$(function() {
$('#input1').on('keypress', function(e) {
if ($(this).val() == "")
if (e.which == 32)
return false;
});
});
<强> Online Demo (jsFiddle) 强>