我尝试使用jQuery编写脚本,假设在每个逗号“,”之后自动放置一个空格,以便分隔用户在输入字段中输入的数字序列。例如如果他们输入(45,68,95,23),当用户离开输入栏时,它变为(45,68,95,23)。
这是为了检查输入是否有逗号
$("#test").blur(function() {
if(this.value.indexOf(",") !== -1) {
alert('got a comma');
}
});
答案 0 :(得分:7)
只需用逗号分隔输入值,修剪每个项目的空格,然后将结果数组与逗号和空格连接在一起。
$("#test").blur(function () {
this.value = $.map(this.value.split(","), $.trim).join(", ");
});
答案 1 :(得分:6)
$('#test').blur(function(){
$(this).val(function(i,oldValue){
return oldValue.replace( /,\s*/g, ', ' );
});
});
或者,少用jQuery:
$('#test').blur(function(){
this.value = this.value.replace( /,\s*/g, ', ' );
});
答案 2 :(得分:0)
this.value=this.value.replace(/,/gim,', ');
答案 3 :(得分:0)
使用正则表达式,这会将每个逗号周围的空白规范化为一个U + 0020空格字符,此后文本框在更改值后失去焦点时发生。它还会从开头和结尾修剪空白(或逗号逗号):
$("#test").change(function() {
this.value = this.value.replace(/\s*,\s*/g, ', ').replace(/^,?\s*|,?\s*$/g, '');
});
正则表达式也有助于告诉用户他的输入是否有效。 Try this demo:
$("#test").focus(function() {
$(this).removeClass('valid invalid');
}).blur(function() {
this.value = this.value.replace(/\s*,\s*/g, ', ').replace(/^,?\s*|,?\s*$/g, '');
if(/^(?:[\d.](?:, )?)*$/.test(this.value)) {
$(this).addClass('valid');
} else {
$(this).addClass('invalid');
}
});