拒绝javascript表单验证中的空格
Reject spaces in javascript form validation
我使用以下表单验证,但如果在firstname/lastname/phone字段中使用空格,我想引发一个错误。有什么想法吗?
<script type="text/javascript">
function validateFormOnSubmit(theForm) {
var reason = "";
reason += validateUsername(theForm.first_name);
reason += validateLastname(theForm.last_name);
reason += validateEmail(theForm.email);
reason += validatePhone(theForm.phone);
if (reason != "") {
alert("Some fields need correction:'n" + reason);
return false;
}
}
function validateUsername(fld) {
var error = "";
var illegalChars = /'d/; // allow letters, numbers, and underscores
if (fld.value == "") {
fld.style.background = 'Yellow';
error = "You didn't enter a first name.'n";
} else if (illegalChars.test(fld.value)) {
fld.style.background = 'Yellow';
error = "The first name contains illegal characters.'n";
} else {
fld.style.background = 'White';
}
return error;
}
function validatePhone(fld) {
var error = "";
if (fld.value == "") {
fld.style.background = 'Yellow';
error = "You didn't enter a phone number.'n";
} else {
fld.style.background = 'White';
}
return error;
}
function validateLastname(fld) {
var error = "";
var illegalChars = /'d/; // allow letters, numbers, and underscores
if (fld.value == "") {
fld.style.background = 'Yellow';
error = "You didn't enter a last name.'n";
} else if (illegalChars.test(fld.value)) {
fld.style.background = 'Yellow';
error = "The last name contains illegal characters.'n";
} else {
fld.style.background = 'White';
}
return error;
}
function trim(s)
{
return s.replace(/^'s+|'s+$/, '');
}
function validateEmail(fld) {
var error="";
var tfld = trim(fld.value); // value of field with whitespace trimmed off
var emailFilter = /^[^@]+@[^@.]+'.[^@]*'w'w$/ ;
var illegalChars= /['(')'<'>',';':'''"'[']]/ ;
if (fld.value == "") {
fld.style.background = 'Yellow';
error = "You didn't enter an email address.'n";
} else if (!emailFilter.test(tfld)) { //test email for illegal characters
fld.style.background = 'Yellow';
error = "Please enter a valid email address.'n";
} else if (fld.value.match(illegalChars)) {
fld.style.background = 'Yellow';
error = "The email address contains illegal characters.'n";
} else {
fld.style.background = 'White';
}
return error;
}
</script>
if(name.test(/'s+/g)){
// there is one or more white spaces in the name
}
您使用illegalChars
概念走在了正确的轨道上。但是,不同的验证方法并不一致。此外,RegEx不会像你想要的那样匹配。我建议在validateUsername
中添加相同的逻辑,在所有验证方法中使用这些RegEx:
function validateUsername(val) {
var illegalChars = /[^a-zA-Z0-9_]/;
...
}
function validatePhone(val) {
var illegalChars = /[^0-9().-]/; // No spaces allowed
// Or
var illegalChars = /[^0-9]/; // Only numbers no spaces or dashes or (area code)
...
}
您是否已使用throw
、try
和catch
对错误进行了管理?
function test() {
throw new Error("Illegal Characters");
}
try
{
test();
}
catch (e)
{
alert(e); // Displays: "Error: Illegal Characters"
}
相关文章:
- 仅在jQuery验证中验证数字、括号和空格
- 仅当后面跟着字母表时才允许使用空格字符的验证
- regex验证允许尾随空格
- 用于 HTML 表单验证的正则表达式在没有空格的情况下开始
- 使用 javascript 验证空格
- 表单验证 - Javascript 删除空格电话号码
- 动态验证输入框是否有空格或是否为空
- 引导验证器.正则表达式没有空格
- 如何验证字母数字输入之间的空格
- 只允许字母和空格-jquery验证插件
- 仅验证空格的文本框
- 如何验证通过JavaScript正则表达式仅输入的字母和空格
- 验证数字并允许空格
- 根据空格验证文件名的正则表达式
- 验证文本区域是否允许输入数字、逗号、点和空格
- 如何阻止多个空格清除表单验证
- 如何验证html文本框不允许特殊字符和空格
- 用逗号和空格表示验证号的正则表达式
- Javascript:只验证alpha和空格
- 使用事件.用来验证用户按下空格键是否在Firefox中不起作用