正则表达式


1. 正则表达式用于定义一些字符串的规则:计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来。

2. 创建正则表达式对象:

var reg=new RegExp("正则表达式","匹配模式");  //结果:/内容/

匹配模式:值:i:忽略大小写

g:全局匹配模式

使用字面量来创建正则表达式:

语法:var 变量=/正则表达式/匹配模式;

var express=/a/i;

var result=express.test("abcdse");

console.log(result);

检查一个字符串中是否有a或b:

var express=/a|b|c/i;

或var express=/[ab]/i;

检查是否有字母:[A-z]

检查是否有abc,adc,aec:

var express=/a[bde]c/i;

[^ab]:除了ab以外都为true

[0-9]:任意数字

[a-z]:任意小写字母

3. 正则表达式的方法:test( )使用这个方法可以用来检查一个字符串是否符合正则表达式,符合返回true,不符合返回false;

var str='a';      //用来检验字符串中是否含有a

var result=reg.test(str);

console.log(result);

4. 字符串与正则表达式

split:把字符串分割为字符串数组。

根据字母拆分字符串:    //不指定全局匹配也会全部改变

var express='a1b2n3v4b5c5g7';
result=express.split(/[0-9]/);
console.log(result);

 

search:搜索字符串中是否含有指定内容

若搜索到指定内容,则返回第一次出现的索引,若没有搜索到返回-1

只会查找第一个

var express="a1 b2 n3 v4 b5 c5g7";
result=express.search('a1');
console.log(result);

var express="a1 b2 abc v4 aec c5g7";
result=express.search(/a[be]c/);
console.log(result);

match( ):根据正则表达式,从一个字符串中将符合条件的内容提取出来

默认情况下只会找到第一个符合要求的内容,找到以后就停止检索,将正则表达式设置为全局匹配,就会匹配到所有内容。

会将匹配到的内容封装到一个数组中返回,即使只搜索到一个结果。

var express="a1b2abcv4aecc5g7";
result=express.match(/[A-z]/gi);
console.log(result);

replace():将字符串中指定内容替换为新的内容。

参数:被替换的内容,可以接受一个正则表达式作为参数

新内容

默认只替换第一个

var express="a1b2abcv4aecc5g7";
result=express.replace(/b/gi,"g");  //删除字母:新内容为“”
console.log(result);

5. 量词:通过量词可以设置一个内容出现的次数:{n}正好出现n次,量只对它前面一个内容起作用;(ab){3}==ababab;

ab{1,3}c:出现一次到三次b

ab{3, }c:出现三次以上b

ab+c:出现至少一个b

ab*c:出现0个或多个b

ab?c:出现0个或1个b

^a:以a开头

a$:以a结尾

^a|a$:以a开头或者以a结尾

^a$:只能是一个a

var str=/a{3}/;

 

6. 检查一个字符串是否为一个合法手机号

以1开头        ^1

第二位3-9任意数字 [3-9]

三位以后任意数字   [0-9]{9}$

var reg=/^1[3-9][0-9]{9}$/;
console.log(reg.test('13953975005'));

7. 检查一个字符串中是否含有.

. 表示任意字符

使用 \ 来表示转义字符,使用  \ . 来表示 .

在构造函数要使用 \ 要利用 \\ 来代替

\w

任意数字、字母、_、[A-z 0-9]

\W

除了任意数字、字母、_、[A-z 0-9]

\d

任意数[ 0-9]

\D

除了任意数[ 0-9]

\s

空格

\S

除了空格

\b

单词边界

\B

除了单词边界

var reg=/\bchild\b/;
console.log(reg.test('hello children'));

8. 接收一个用户的输入

var str=prompt("请输入你的用户名:");
//去除字符串中前后的空格,使用“”替换空格
str=str.replace(/^\s*|\s*$/g,"");
console.log(str);

9. 写一个电子邮件的正则

任意的字母数字下划线 . 任意的字母数字下划线@ 任意字母数字 .任意字母(2-5). 任意字母(2-5)

\w{3,}  (\.\w+)* @  [A-z0-9]+  ( \.[A-z]{2-5}){1,2}

可以在网上搜索

JavaScript基础-06-正则表达式的更多相关文章

  1. javascript基础06

      javascript基础06 splice var del_arr = del.splice(0,2); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返 ...

  2. JavaScript基础知识-正则表达式

    正则表达式 作用:定义一个特定的验证字符串内容规则的表达式 注:正则表达式并不是JavaScript独有的:JavaScript支持正则表达式 var a = { };  // 定义一个空对象     ...

  3. JavaScript基础06——字符串

    字符串的创建: 字符串的创建: var str = "hello world"; //常量,基本类型创建 var str2 = new String("hello wor ...

  4. 从零开始学习前端JAVASCRIPT — 9、JavaScript基础RegExp(正则表达式)

    1:正则的概念 正则表达式(regular expression)是一个描述字符规则的对象.可以用来检查一个字符串是否含有某个子字符串,将匹配的子字符串做替换或者从某个字符串中取出符合某个条件的子串等 ...

  5. JavaScript基础06——Math对象和日期对象

    内置对象-Math:  Math对象用于执行 数学任务,Math 不像 Date 和 String 那样是对象的类,因此没有构造函数Math().无需创建,直接把Math当成对象使用,就可以调用其所有 ...

  6. JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组

    JavaScript基础学习 学习js的基础很重要,可以让自己有更多的技能.我相信这个以后就会用到. Eg:点击选择框,在div中显示出选择的数量 window.onload = function() ...

  7. JavaScript基础系列目录(2014.06.01~2014.06.08)

    下列文章,转载请亲注明链接出处,谢谢! 链接地址: http://www.cnblogs.com/ttcc/tag/JavaScript%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E ...

  8. JavaScript基础入门06

    目录 JavaScript 基础入门06 Math 对象 Math对象的静态属性 Math对象的静态方法 指定范围的随机数 返回随机字符 三角函数 Date对象 基础知识 日期对象具体API 构造函数 ...

  9. 前端之JavaScript基础

    前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...

  10. Javascript中的正则表达式

    Javascript中的正则表达式 刚开始接触正则表达式的时候,觉得这是个很死板的东西(没办法,计算机不能像人眼一样能很快的辨认出我们需要的结果,它需要一定的规则来对它进行限制),了解的越多,发现这个 ...

随机推荐

  1. tineMCE 踩坑:images_upload_handler

    tineMCE 的官方示例提供了前端上传图片方法 images_upload_handler 的写法. 但官方写的有点问题,上传会报错. 不过修改也很简单: images_upload_handler ...

  2. CCNA - Part10 数据包的通信过程

    这篇文章主要是对数据包在同网段和不同网段的转发流程梳理,使用 ping 命令进行实际抓包测试. 网关的概念: 对于像 PC 等终端设备来说,通过交换机可以实现同网段的通信.但如果想要给其他网段发生数据 ...

  3. 题解 CF510E 【Fox And Dinner】

    可以用网络流解决这个题. 注意到\(a_i \geqslant 2\),所以当相邻数字要和为质数时,这两个数要一个为奇数,一个为偶数. 所以就先将所有数按奇偶分为两列,其就构成了一个二分图,二分图中和 ...

  4. python爬虫入门(4)----- selenium

    selenium 简介 selenium使用JavaScript模拟真实用户对浏览器进行操作.测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户 ...

  5. spring-cloud-alibaba-sentinel和feign配合使用,启动报Caused by: java.lang.AbstractMethodError: com.alibaba.cloud.sentinel.feign.SentinelContractHolder.parseAndValidateMetadata(Ljava/lang/Class;)Ljava/util/List

    背景 我在学习spring-cloud-alibaba技术栈期间,在学习服务熔断与限流的时候,服务启动发生了以下异常 #这是控制台最上面的 sun.misc.Unsafe.park(Native Me ...

  6. Python学习手册(第4版)PDF高清完整版免费下载|百度云盘

    Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...

  7. vb教程图文并茂

    https://blog.csdn.net/baimafujinji/article/details/70198953

  8. PHP array_unshift() 函数

    实例 插入元素 "blue" 到数组中: <?php$a=array("a"=>"red","b"=> ...

  9. PHP simplexml_import_dom() 函数

    实例 获取 DOM 文档节点并转换为 SimpleXML 节点: <?php$dom=new domDocument;高佣联盟 www.cgewang.com$dom->loadXML(& ...

  10. 7.1 NOI模拟赛 凸包套凸包 floyd 计算几何

    计算几何之所以难学 就是因为太抽象了 不够直观 而且情况很多 很繁琐 甚至有一些东西不清不楚.. 这道题注意到题目中的描述 一个鸽子在两个点所连直线上也算. 通过看题解 发现这个地方并非直线而是线段 ...