js正则表达式小tips

RegExp的构造函数创建了一个正则表达式对象,用模式来匹配文本。
有两种方法可以创建一个正则对象:字面量和构造函数。

正则表达式字面量:

var re = /ab+c/;

在脚本加载后编译。若你的正则表达式是常量,使用这种方式可以获得更好的性能。

构造函数:

var re = new RegExp("ab+c");

使用构造函数,提供了对正则表达式运行时的编译。

当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)。比如,以下是等价的:

var re = new RegExp("\\w+");
var re = /\w+/;

示例:

RegExp("^1[34578]\\d{9}$")
/^1[34578]\d{9}$/

RegExp(/^1[34578]\d{9}$/)
/^1[34578]\d{9}$/

RegExp("^1[34578]\\d{9}$").test('123')
false

RegExp(/^1[34578]\d{9}$/).test('123')
false

RegExp(/^1[34578]\d{9}$/).test('13211111111')
true

注:
json不支持正则表达式,传值时需要转为字符串。

{
    "type": "form-input-item",
    "element": "input.detail_t2",
    "maxLength": 11,
    "validator": {
        "allowEmpty": false,
        "type": "regex",
        "regex": "^1[34578]\\d{9}$",
        "ERR": "请您输入正确的手机号"
    }
}

参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

邮箱及手机验证(正则表达式)

 //邮箱验证
 if($(“#email”).val() == ”){
  $(“#email”).focus();
  alert(“请填写您的邮箱”);  
  return false;
 }else{
  var val = $(“#email”).val();
  if(val.match(/^[a-z0-9]+([\.\_]*[a-z0-9]+)*@[a-z0-9]+([\_\.][a-z0-9]+)+$/gi))
   {return true};
  alert(“邮箱格式不正确,请重新填写”);     
  $(“#email”).focus();
  return false
 }

 //手机验证
 if($(“#mobile”).val() == ”){
  $(“#mobile”).focus();
  alert(“请填写您的手机”);  
  return false;
 }else{
  var val = $(“#mobile”).val();
  if(val.match(/^0{0,1}(13[0-9]|15[0-9]|153|156|18[7-9])[0-9]{8}$/))
   {return true};
  alert(“手机号码格式不正确,请重新填写”);     
  $(“#mobile”).focus();
  return false
 }

以上两个规则,基于jquery,写在表单提交的验证函数中,验证函数~之前写过。

附:

各类型手机号码正则表达式

中国移动134.135.136.137.138.139.150.151.152.157.158.159.187.188 ,147(数据卡)
中国联通130.131.132.155.156.185.186
中国电信133.153.180.189
CDMA   133,153

正则如下:

         匹配移动手机号

          “^1(3[4-9]|5[012789]|8[78])\d{8}$”
        
         匹配电信手机号
          “^18[09]\d{8}$”
        
          匹配联通手机号
        
         “^1(3[0-2]|5[56]|8[56])\d{8}$”

          匹配CDMA手机号

          “^1[35]3\d{8}$”

jquery验证邮箱

前段时间处理了验证手机,金额,小数点等验证。最近做页面的时候,又遇到了一个验证邮箱的,过程不多说,直接看代码。实现关键还是正则,正则表达式很强大。有机会,好好学学,但是是学好,感觉不容易。还好一些常用的,网上可以找到。但是看懂是必须要做到的~~

$(function(){

 $(“#email”).blur(function(){
  var txt_value = $(this).val();
  if(txt_value==””){
   $(this).val(“请输入邮箱地址”)
  }else if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(txt_value))){
  alert(“请输入一个有效的邮件地址”);
   $(this).val(“”);
  return false;
 }
  
 })

})

表单里面邮箱文本框name和id属性均为email.添加鼠标移出事件。