正则表达式


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. python学完可以做什么?Python就业方向最全面的解析

    乔布斯说过:“每一个人都应该学习如何编程,因为编程会教会你如何思考.”下一个时代是人机交互的时代,学习编程不是要让你成为程序员,而让你理解这个时代. 点击免费领取:全网最全python学习导图+14张 ...

  2. 有关 Session 的那些事儿

    原文链接: https://blog.by24.cn/archives/about-session.html Web 开发中,Session 是经常用到的概念,但是在日常交流中,似乎又经常引起误解. ...

  3. SparkCore

    一.概述 1,定义 RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象.代码中是一个抽象类,它代表一个不可变.可分区.里面的元素可 ...

  4. 关于C#反射(转载)

    反射的用途:     (1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例.     (2)使用Module了解包含模块的程序集以及模块中 ...

  5. 05 ES6模块化规范基础详解

    ES6模块规范 1.1 ES6规范说明 历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来.其他语言都有这项功能,比如 Ru ...

  6. 题解 洛谷 P3185 【[HNOI2007]分裂游戏】

    首先可以发现,当所有巧克力豆在最后一个瓶子中时,就无法再操作了,此时为必败状态. 注意到,对于每个瓶子里的巧克力豆,是可以在模\(2\)的意义下去考虑的,因为后手可以模仿先手的操作,所以就将巧克力豆个 ...

  7. Docker 概念-2

    Docker 是什么? 说了这么多, Docker 到底是个什么东西呢?我们在理解 Docker 之前,首先得先区分清楚两个概念,容器和虚拟机. 可能很多读者朋友都用过虚拟机,而对容器这个概念比较的陌 ...

  8. React native项目后期调整UI总结

    字体 fontSize: 14, marginLeft: 10, marginTop: 2, fontFamily: 'ABBvoiceCNSG-Regular', 布局 paddingHorizon ...

  9. 数据库(十三):MySQL内置方法

    进击のpython ***** 数据库--MySQL内置方法 目录 数据库--MySQL内置方法 视图 增加 修改 删除 触发器 创建 使用 删除 存储过程 无参 有参 事务 代码实现 视图 视图是一 ...

  10. hostapd阅读(openwrt)-2

    深入追踪openwrt下的hostapd之后,发现openwrt无线管理机制格外的复杂,几乎所以的触发与回调均离不开ubus,关于ubus这里不作解释,先大概了解其用途即可(出门左转:https:// ...