正则表达式


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. P1469 找筷子

    摘要:有n根(n为奇数)长短不一的筷子,里面可以凑成(n-1)/2双筷子,只剩下一根不能凑对,问那根不能凑对的筷子有多长. 乍听起来好像不难,桶是一个好东西,可是一看数据:对于100%的数据,N< ...

  2. 一起学Blazor WebAssembly 开发(1)

    最近blazor的WebAssembly 正式版出来了,正好手头有一个项目采用的前后端分离模式做的,后端用的abp vnext(.net core 的一个很著名的框架)框架开发的,其实前端之前考虑的使 ...

  3. 原来python还可以这样处理文件

    首先我为大家介绍一下python语言吧! Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言 ...

  4. python-多任务编程01-线程(threading)

    并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已) 并行:指的是任务数小于等于cp ...

  5. MySQL数据管理

    3.MySQL数据管理 3.1外键 方式一:  create table `grade`(  `gradeid` int(10) not null auto_increment comment '年纪 ...

  6. HTML骨架

    本文只是复习HTML笔记 html 骨架: DTD:文档类型定义,规定了使用哪个版本的html规范 html 标签:双标签,表示整个网页 head 标签: 配置HTML页面 title: 网页标题 m ...

  7. 使用brew services管理服务

    简介 官网: https://github.com/Homebrew/homebrew-services macOS使用launchctl命令加载开机自动运行的服务,brew service可以简化l ...

  8. docker时区不正确的问题修改记

    前一阵子有一台服务器,mysql的时间比北京时间晚了8个小时.我知道是时区的问题,但是不知道为什么弄成这样,宿主机没有问题,后来一看mysql的docker,时区是错的. mybatis-plus打印 ...

  9. OpenFeign使用步骤

    1. 新建 cloud-consumer-feign-order80 2. pom.xml <?xml version="1.0" encoding="UTF-8& ...

  10. nonlocal 访问变量

    def counter(start = 0): def incr(): nonlocal start #分别保存每一个变量的临时值.类似yield start += 1 return start re ...