使用javascript验证空白
我有以下脚本使用javascript验证空白,javascript,Javascript,我有以下脚本 document.getElementById('url').onkeypress = function (e) { var val = this.value; var validaterror = document.getElementById('errorvalidate'); if (e.which == 13) { if (!/\S/.test(val)) { validaterror.innerHTML = 'Please enter
document.getElementById('url').onkeypress = function (e) {
var val = this.value;
var validaterror = document.getElementById('errorvalidate');
if (e.which == 13) {
if (!/\S/.test(val)) {
validaterror.innerHTML = 'Please enter domain names in the field.';
return false;
}
validaterror.innerHTML = '';
}
}
HTML
演示document.getElementById('url')。onkeypress=函数(e){
var val=this.value.split('\n');
var validateError=document.getElementById('errorvalidate');
var i;
如果(e.which==13){
对于(i=0;i
我所做的:
更改/\S/.test
到/\S/.test
在新行字符上拆分val,并根据正则表达式对每行进行求值(虽然也可以使用一个多行正则表达式,如F.J尝试这样做,但他的答案对我不起作用)document.getElementById('url')。onkeypress=function(e){
var val=this.value.split('\n');
var validateError=document.getElementById('errorvalidate');
var i;
如果(e.which==13){
对于(i=0;i
我所做的:
更改/\S/.test
到/\S/.test
在新行字符上拆分val,并根据正则表达式对每行进行求值(尽管也可以使用一个多行正则表达式,如F.J尝试这样做,但他的答案对我不起作用)尝试更改
/\S/.test(val)
到/^\S*$/m.test(val)
例如:
说明:
/^\s*$/m
是一个正则表达式,如果字符串中有一行仅包含空格,则该正则表达式将匹配。m
(多行)标志使^
在字符串开头或换行后匹配,$
标志在字符串结尾或换行前匹配。尝试更改/\S/.test(val)
到/^\S*$/m.test(val)
例如:
说明:/^\s*$/m
是一个正则表达式,如果字符串中有一行仅包含空格,则该正则表达式将匹配。m
(多行)标志使^
在字符串开头或换行后匹配,$
标志在字符串结尾或换行前匹配。试试看,应该可以很好地工作
var oldkey = null;
document.getElementById('url').onkeypress = function (e) {
var val = this.value;
var validaterror = document.getElementById('errorvalidate');
if (e.which == 13) {
if (!/\S/.test(val) || oldkey == e.which) {
validaterror.innerHTML = 'Please enter domain names in the field.';
return false;
}
validaterror.innerHTML = '';
}
oldkey = e.which
}
试试这个,它应该足够好用了
var oldkey = null;
document.getElementById('url').onkeypress = function (e) {
var val = this.value;
var validaterror = document.getElementById('errorvalidate');
if (e.which == 13) {
if (!/\S/.test(val) || oldkey == e.which) {
validaterror.innerHTML = 'Please enter domain names in the field.';
return false;
}
validaterror.innerHTML = '';
}
oldkey = e.which
}
但从第二排开始,第一排就没有得到验证。你说得对,我没有完全理解你的问题。我改变了答案。但从第二排开始,第一排的答案就不再有效了。你是对的,我没有完全理解你的问题。我更改了答案。这允许只包含空格的行。@F.J您可以这样做
&&oldkey!=32
但这意味着不允许在“domain.com”中键入内容,而对于这个用例(域名不应该有空格)来说这是可以的,但您的解决方案要简单得多。这允许只包含空格的行。@F.J您可以这样做和&oldkey!=32
但这意味着不允许在“domain.com”中键入内容,尽管这种用例(域名不应该有空格)没有问题,但您的解决方案远没有那么粗糙和干净。
document.getElementById('url').onkeypress = function (e) {
var val = this.value.split('\n');
var validaterror = document.getElementById('errorvalidate');
var i;
if (e.which == 13) {
for (i = 0 ; i < val.length ; i++) {
if (/\s/.test(val[i])) {
validaterror.innerHTML = 'Please enter domain names in the field.';
return false;
}
}
validaterror.innerHTML = '';
}
}
var oldkey = null;
document.getElementById('url').onkeypress = function (e) {
var val = this.value;
var validaterror = document.getElementById('errorvalidate');
if (e.which == 13) {
if (!/\S/.test(val) || oldkey == e.which) {
validaterror.innerHTML = 'Please enter domain names in the field.';
return false;
}
validaterror.innerHTML = '';
}
oldkey = e.which
}