我的代码:
var myNameFilter = /^([a-zA-Z ]+)$/;
var a = $('#afirstname').val();
if(a=='') {
console.log('WT?');
return false;
} else if (!myNameFilter.test(a)) {
console.log('WT? seriously?');
return false;
}
submit_form();
如果有人将a = ' '
的值仅设置为空格,则此过滤无效。
如何使用myNameFilter
进行过滤?
答案 0 :(得分:2)
像这样使用trim()
var a = ' ';
a.trim() // => ''
所以你可以做到
var myNameFilter = /^([a-zA-Z ]+)$/;
var a = $('#afirstname').val();
if(!a.trim()) {
console.log('WT?');
return false;
} else if (!myNameFilter.test(a)) {
console.log('WT? seriously?');
return false;
}
submit_form();
注意if
,当修剪后的字符串为空时,条件!a.trim()
的计算结果为真,因为空字符串是假值
答案 1 :(得分:1)
您可以使用trim功能修剪空白。
var a = $('#afirstname').val().trim();
包含Jan de Derdelinks
等空格的名称将保留。但如果他们输入" Jan de Derdelinks "
,它将变为"Jan de Derdelinks"
答案 2 :(得分:1)
我认为使用trim
并测试长度是最简单的解决方案
if (a.trim().length) {
//a has content
} else {
//a has no content
}
答案 3 :(得分:1)
var myNameFilter = /^[a-z|A-Z]+(\s[a-z|A-Z]+){0,}$/,
name = $('#afirstname').val();
if (myNameFilter.test(name)) {
submit_form();
}
答案 4 :(得分:0)
另一种可以接近这种方式的方法是通过取一个字符串并将其放入函数中。让我们说x是你的字符串。我们将找到长度,然后我们将在其中找到“”的数量。如果匹配,则字符串全为空白。
`function testForBlank(x) {
var spaces=x.match(/ /gi).length;
var length=x.length;
if (spaces==length) {
alert("x is all blank");
} else {
alert("x is not all blank");
}
}'