Validating Common Form Input - Part 3 Validating names

Single names  和username 不同,一般位字母。数字长度位(4,32)

  
  
  
  
  1. function validate(form) {  
  2.   // Regular expression for a single name  
  3.   var rgx = /^\s*[a-z]{4,32}\s*$/i;  
  4.   if(!rgx.test(form.elements.name.value))  
  5.     return false;  
  6.   return true;  
  7. }  

2.为了支持本地化。可以超找unicode.他依赖使用的encoding,普遍的为:ISO-8859-1 and UTF-8.

  
  
  
  
  1. <meta http-equiv=\"Content-Type\" content=\"text/html;charset=ISO-8859-1\" />   

 如果是ISO-8859-1,对于特殊的丹麦字符如 æ, ø and å 。他们在ASCII对应的值为 230, 248 and 314。十六进制:0xE6, 0xF8 and 0xE5

在名字中允许丹麦字符如 æ, ø and å

  
  
  
  
  1. function validate(form) {  
  2.   // Regular expression for a single name  
  3.   var rgx = /^\s*[a-z\xe6\xf8\xe5]{4,32}\s*$/i;  
  4.   if(!rgx.test(form.elements.name.value))  
  5.     return false;  
  6.   return true;  
  7. }  

如果是UTF-8,可以直接输入字符

  
  
  
  
  1. // Regular expression for a single name  
  2. var rgx = /^\s*[a-zæøå]{4,32}\s*$/i;  
  3. if(!rgx.test(form.elements.name.value))  
  4.   return false;  
  5. return true;  

话说回来,一般会有多个名称,允许有空白字符

  
  
  
  
  1. function validate(form) {  
  2.   // Regular expression for a multiple names  
  3.   var rgx = /^\s*[a-z\s]{4,32}\s*$/i;  
  4.   if(!rgx.test(form.elements.name.value))  
  5.     return false;  
  6.   return true;  
  7. }  

显然现在,也不是我们想要的。因为添加的\s,可以匹配4到32个空白字符

  
  
  
  
  1. function validate(form) {  
  2.   // Regular expression for a multiple names  
  3.   var rgx = /^\s*[a-z]{4,}(\s+[a-z]{4,})*\s*$/i;  
  4.   if(!rgx.test(form.elements.name.value))  
  5.     return false;  
  6.   return true;  
  7. }  

添加长度限制

 

  
  
  
  
  1. function validate(form) {  
  2.   // Shortcut to save writing  
  3.   var elm = form.elements;  
  4.   // Regular expression for a multiple names  
  5.   var rgx = /^\s*[a-z]{4,}(\s+[a-z]{4,})*\s*$/i;  
  6.   if(elm.name.value.length < 33 && !rgx.test(elm.name.value))  
  7.     return false;  
  8.   return true;  
  9. }  

 

处理名称中缩写、及破折号问题。like Martin, Martin L. King, M. Luther-King, Martin Luther-King etc.

  
  
  
  
  1. function validate(form) {  
  2.   // Shortcut to save writing  
  3.   var elm = form.elements;  
  4.   // Regular expression for a multiple names  
  5.   var rgx = /^\s*[a-z]+([a-z]*\.|\s*\-\s*[a-z]+)?(\s+[a-z]+(\.|\s*\-\s*[a-z]+)?)*\s*$/i;  
  6.   if(elm.name.value.length < 33 && !rgx.test(elm.name.value))  
  7.     return false;  
  8.   return true;  
  9. }  

 

你可能感兴趣的:(正则表达式,入门,职场,休闲)