常用正则表达式

2018-11-30  本文已影响0人  泡泡牛momo

常用正则

 /<[^<]*>/gi       //去掉所有HTML标签
/<(?!\/?br\/?.+?>|\/?img.+?>)[^<>]*>/gi     //去掉HTML标签,切保留img br标签
/[\S]+/        //必填项不能为空
/^1\d{10}$/      //手机号码
/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/    //邮箱
/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/      //   url
/(^\d{15}$)|(^\d{17}(x|X|\d)$)/   //身份证号

特殊字符转义

可用于页面输入特殊字符时使用 不过一般都没用到

str.replace(/[<>&"\'\(\)\\\/;\]\[]/g,function(c){return {'<':'&lt;','>':'&gt;','&':'&amp;','"':'&quot;','\'':'&apos;','\(':'&#40;','\)':'&#41;','\\':' &#92;','\/':'&#47;',';':'&#59;','\]':' &#93;','\[':' &#91;'}[c];});

字符串是否包含特殊字符

var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\]<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_]");
pattern.test(str)

判断最后几位替换成同等几位

"5AAAAA6BCAAA".replace(/(A(?=A+$)|A(?=$))/g,"B") 
输出: 5AAAAA6BCBBB

过滤字符串中的[哈哈哈]表情符号

emotion_data是表情包的json格式

var reg =/\[[^\[\]]+\]/gi; 
var strs = str.replace(reg,function(a,b){ 
      var flag = true;
      for( var i=0;i<emotion_data.data.length;i++ ){
        var stra = emotion_data.data[i].phrase;
        if( stra==a ){
                var rep =  '<img class="ic_data" src="assets/emotion/'+emotion_data.data[i].url+'" alt="'+a+'" />';
                flag = false;
                return rep;
        }
     }
      if( flag ){
        return a;
      }
});

var emotion_data = {
    "code": 1,
    "data": [{
        "phrase": "[马到成功]",
        "type": "face",
        "url": "d_madaochenggong.png",
        "hot": false,
        "common": true,
        "category": "",
        "icon": "d_madaochenggong.png",
        "value": "[马到成功]",
        "picid": ""
    },{
        "phrase": "[马上有对象]",
        "type": "face",
        "url": "d_duixiang.png",
        "hot": false,
        "common": true,
        "category": "",
        "icon": "d_duixiang.png",
        "value": "[马上有对象]",
        "picid": ""
    }]
};
上一篇 下一篇

猜你喜欢

热点阅读