strObj.search(正则) 返回 下标/-1
strObj.match(正则) 返回 数组/null
正则的方法:

re.test(字符) 返回 true/false
特点:只要有一个匹配就为true
解决: $ 解决
问题: 如果找的不是在行首,就不要用test
问题:用来test
g 不要加

正则:
干嘛用? 操作字符
理解:制定一种字符串的规则,以验证该字符串是否符合该规则
应用场景:邮箱验证、手机号验证、ip地址、关键词屏蔽等;

* 正则是一个javascript对象

正则表达式的创建方法:
eg:
var re = new RegExp(‘规则’,’选项’);
var re = 规则/选项

正则表达式语法介绍:
选择
i 忽略大小写
g 全局,通用
m 多行模式
m 只影响 ^ $

量词用法 : (个数、 n==最少 m==最大多 直管前面一个)
{n} 指定了n个
{n,m} 最少n个,最多m个
{n,} 最好n个,多了不限
{0,m} 最多m个,少了不限

+      若干个,不确定只管自己前面的那个字符eg: ab+ 重复多次出现beg: (ab)+ 重复多次出现abab…*       任意个 可以没有
?       有一次或者没有 => {0,1}

条件用法:
^ 开头 行首
$ 结尾 行尾
\b 单词边界(能把单词隔开)

转义:
\d 数字 [0-9]
\w 单词(英文数字下划线) [a-z0-9_]
. 任意字符
特点: 出现在[]里面、可以直接写
出现在[]外面,需要转义 => .

    \D  非数字\W  非单词\S  非空格

字符的转义:
\ 转义本身
\x 转义字符x
\xnnnn n不转

    转义本身    \\\d 数字

或: | 低优先级

方括号[]:
[abc] 方括号 a或b或c 任选一个
[a,b,c] 或 a 或 b 或 c 或 ,
[x-o] 从x到o [0-9] [a-z]
[-] 或-
[a-c] a到c
[ab-] 或a或b或-
排除: / [abc] /
行首符: /^ /

注:默认情况下,正则表达式都是从左到右逐个匹配的

例:

//找字符串的索引
var str='ssssassss';
var re = /A/i   //简写
alert(str.search(re));
//合并空格
window.onload=function(){var str='I  love   you';str = str.match(/\S+/g).join(' ');console.log(str);document.write(str);
};
//最近东哥发话了,“奶茶妹妹”这个词以后不准叫了,广大媒体也应该知道怎么屏蔽敏感词吧,下面就以这个举例子吧!
<script>
var str='章泽天,1993年11月18日出生于南京,网络红人。2009年因一张手捧奶茶的照片走红网络,被称为“奶茶妹妹”。2011年,章泽天就读清华大学。2014年4月14日,章泽天与刘强东的恋情被媒体曝光,引起网友广泛关注。2015年1月2日,奶茶妹主持的《燃烧吧大脑》在江苏卫视播出。';
var re = /奶茶妹妹|章泽天|刘强东/g;
document.write(str.replace(re,function(s){var star='';for(var i=0;i<s.length;i++){star+='*';  }return star;
}));
</script>

//剔除左右空格
window.onload=function(){var str='   love you  ';document.getElementById('ipt1').value = trim(str);function trim(str){str = str.replace(/^\s+|\s+$/g,'');return str; }
};<input type="text" id="ipt1"></input>
//替换字符里面所有的点
var str='jquery1.11.1.js';
str=str.replace(/\./g,'');
document.write(str);
//校验邮箱
window.onload=function(){var oIpt=document.getElementById('ipt1');var oBtn=document.getElementById('btn1');   var oSpan=document.getElementById('s'); var re = /^[a-zA-Z0-9_\.\-]{3,17}[a-zA-Z0-9]@\w+\.[a-zA-Z]{2,3}(\.[a-zA-Z]{1,2})?$/;oBtn.onclick=function(){if(re.test(oIpt.value)){oSpan.innerHTML='合法'}else{oSpan.innerHTML='非法'    }};<body><input type="text" id="ipt1"><input type="button" value="校验邮箱" id="btn1"><span id="s"></span>
</body>
//只能输入中文
<script>
window.onload=function(){var oIpt=document.getElementById('ipt1');var re=/^[\u4e00-\u9fa5]+$/;   oIpt.onblur=function(){if(re.test(oIpt.value)){alert('ok');    }else{alert('ko');}};
};
</script>
//校验座机号
<script>
window.onload=function(){var oIpt=document.getElementById('ipt1');var oBtn=document.getElementById('btn1');   var oSpan=document.getElementById('s'); var re = /^(0[1-9]\d{1,2}-?)?[1-9]\d{6,7}$/;oBtn.onclick=function(){if(re.test(oIpt.value)){oSpan.innerHTML='合法'}else{oSpan.innerHTML='非法'    }};
};
</script>
<body><input type="text" id="ipt1"><input type="button" value="校验座机" id="btn1"><span id="s"></span>
</body>

//表单验证实战

<style>
*{ margin:0; padding:0; list-style:none; font-family: "微软雅黑","张海山锐线体简"}
input{ border:#999 solid 1px;}
.error{ border:#F00 solid 1px;}
.ok{ border:green solid 1px;}
</style>
<script>
window.onload=function(){var oFm=document.getElementById('fm');var aIpt=document.getElementsByTagName('input');var json={mail:   /^\w+@\w+\.[a-zA-Z]{2,3}\.[a-zA-Z]{1,2}$/,tel:    /^(0[1-9]\d{1,2}-?)?[1-9]\d{6,7}$/,age:    /^(1[6-9]|[2-9]\d|100)$/,user:   /^[\u4e00-\u9fa5]+$/};oFm.onsubmit=function(){    var bOk=true;//假设校验合格   for(var i=0;i<aIpt.length;i++){if(aIpt[i].name){//有name属性再向下走var re = json[aIpt[i].name];if(!check(re,aIpt[i])){//校验后如果返回falsebOk=false;  }}}if(bOk==false){//如果校验不合格return false;   }   };for(var i=0;i<aIpt.length;i++){if(aIpt[i].name){var re = json[aIpt[i].name];(function(re){aIpt[i].onblur=function(){check(re,this);};  })(re);}}function check(re,oIpt){if(!re.test(oIpt.value)){oIpt.className='error';return false;}else{oIpt.className='ok';return true;    }   }
};
</script>
</head><body><form action="url" id="fm">邮箱:<input type="text" id="mail" name="mail" value="alex@qq.com.cn"><br>电话:<input type="text" id="tel" name="tel" value="027-87654321"><br>年龄:<input type="text" id="age" name="age" value="18"><br>用户名:<input type="text" id="user" name="user" value="大帅哥"><br><input type="submit" value="提交" id="btn1">
</form></body>

正则表达式及常见用法介绍相关推荐

  1. 怎么用计算机打出cpdd,网络语cpdd是什么梗啥意思 cpdd出处来源哪里常见用法介绍...

    原标题:网络语cpdd是什么梗啥意思 cpdd出处来源哪里常见用法介绍 [海峡网] 随着网络的快速发展,抖音和微博这样的软件也是越来越火,因此很多流行语就随之诞生,特别是在抖音里,经常看到游戏相关的用 ...

  2. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  3. stringstream常见用法介绍

    本文主要介绍 C++ 中 stringstream 类的常见用法. 1 概述 <sstream> 定义了三个类:istringstream.ostringstream 和 stringst ...

  4. JS正则表达式常见用法实例详解

    这篇文章主要介绍了JS正则表达式常见用法,结合实例形式分析了javascript元字符.分组符.修饰符.量词基本含义,并结合具体案例形式分析了javascript正则基本使用技巧,需要的朋友可以参考下 ...

  5. oracle中取反_oracle正则表达式regexp_like的用法详解

    oracle正则表达式regexp_like的用法详解 更新时间:2013年06月13日 17:42:05   作者: 本篇文章是对oracle正则表达式regexp_like的用法进行了详细的分析介 ...

  6. URL 重写的常见用法

    URL 重写的常见用法 创建数据驱动的 ASP.NET 网站时,通常会产生一个单个的网页,该网页基于查询字符串参数显示数据库数据的子集.例如,在设计电子商务站点时,您的任务之一便是允许用户浏览待售产品 ...

  7. awk 和sed的用法介绍

    awk 和sed的用法介绍 一.awk的介绍 1. 作用及用法要求 2. 使用方法 (1)使用的命令: (2)举例说明: 二.sed的介绍 1. 用法介绍及常用命令 2. 具体使用 一.awk的介绍 ...

  8. Scanpy(一)AnnData数据结构与一些API用法介绍

    目录 Scanpy简介与安装 AnnData AnnData的结构 h5ad:AnnData的写入和读取 Scanpy中一些常用api的用法介绍 sc.pp.filter_cells sc.pp.fi ...

  9. sed文本处理常见用法

    sed文本处理常见用法    2011-06-24  TsengYia#126.com http://tsengyia.blog.chinaunix.net/   ################## ...

最新文章

  1. 【Android 插件化】Hook 插件化框架 ( Hook 技术 | 代理模式 | 静态代理 | 动态代理 )
  2. java color类 蓝色_java中Color类的简单总结
  3. PPT下载下来是php,用php下载jpg,doc,ppt文件已损坏
  4. linux进程控制(一)--unix环境高级编程读书笔记
  5. 【优化预测】基于matlab遗传算法优化BP神经网络预测【含Matlab源码 1376期】
  6. EMERSON模块A6500-UM、SLS1508、MVME7100-0171、MVME61006E-0163、A6370D、SE3008、CE3008、MVME6100、VE3006,CE3008
  7. 商易淘宝全屏海报代码生成工具 使用说明
  8. iOS--视频播放器之ZFPlayer
  9. 免费的MySQL数据库
  10. 在 MQL5 中使用 WININET。第二部分:POST 请求和文件
  11. Basic Sensor Calibration (1) -- 加速计传感器校准
  12. 三维重建 | 单张彩色图像三维重建学习框架
  13. oracle create table not null,oracle – 不能在CREATE TABLE中使用内联约束
  14. 【Traffmonetizer】利用闲置电脑/VPS/安卓手机/树莓派来挂机
  15. 基于Red Hat的Linux安装网易云音乐教程(openSUSE)
  16. 如何确定自己浏览器的User-Agent信息
  17. 架构设计五大原则 SOLID五大设计原则
  18. python输出偶数_python程序使用递归查找数字是偶数还是奇数
  19. 什么是vps?vps和代理ip的本质区别?
  20. 星系炸弹 在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16

热门文章

  1. 差异表达基因热图怎么看_【生信】憨憨版分析转录组基因表达差异(二)
  2. 非原生app开发app
  3. 【日语】标日初级上册单词(17-20)1
  4. excel加载项不能被加载_Excel收藏夹加载项
  5. SQL总结(二)连表查询
  6. traefik 使用 -- 静态配置
  7. html中%3c%3e字符原样显示,整理HTML5中支持的URL编码与字符编码_html5教程技巧-H5教程...
  8. Anti Porn(家长控制软件)v25.2.4.8官方版
  9. springboot读取src下文件_springboot 下载模板文件 加载classpath文件路径(示例代码)...
  10. 不知道WPS转PPT怎么转换?来看看我自用的两种方法就知道了