正则表达式


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. SpringBoot整合Swagger3生成接口文档

    前后端分离的项目,接口文档的存在十分重要.与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低.与swagger2相比新版的swagg ...

  2. 题解 洛谷 P5303 【[GXOI/GZOI2019]逼死强迫症】

    可以先去考虑没有\(1 \times 1\)的砖块的情况,对于最后一个位置只有两种情况,一个是竖着用一块砖铺设\(2 \times 1\),另一个为横着用两块砖铺设\(2 \times 2\). 设没 ...

  3. 题解 洛谷 P6378 【[PA2010]Riddle】

    首先不难看出对于本题的点与点之间的限制关系,我们可以考虑用\(2-SAT\)来解决,通过从状态\(x\)向状态\(y\)连一条有向边表示若状态\(x\)存在,那么状态\(y\)必须存在. 接下来的处理 ...

  4. 题解 洛谷 P6351 【[PA2011]Hard Choice】

    删边操作不好处理,所以先将操作倒序,将删边转化为加边. 考虑对于两个点的询问,若这两点不连通或这两个点分别处于两个不同的边双连通分量中(两点间存在桥)时,是不满足题目要求的. 可以用\(LCT\)来维 ...

  5. java文件导出过程 CS、BS差别

    最近在做一个需求,类似和navicat工具差不多的,通过java代码吧数据库表的数据导出来.jdbc获取数据库连接,查询表数据,分批次用流写入文件txt.csv.json.xls.xlsx,搞定之后, ...

  6. python(xlsxwriter模块使用)

    XlsxWriter简介XlsxWriter是一个Python模块,可用于在Excel 2007+ XLSX文件中写入多个工作表的文本,数字,公式和超链接.它支持格式化等功能.可到官网了解更多详情,官 ...

  7. Python重命名和删除文件

    Python重命名和删除文件: rename(当前的文件名,新文件名): 将当前的文件名修改为新文件名 程序: # os.rename('旧名字',’新名字‘) import os os.rename ...

  8. 线程_gevent自动切换CPU协程

    import gevent def f(n): for i in range(n): print (gevent.getcurrent(), i) # gevent.getcurrent() 获取当前 ...

  9. 什么是PHP 面向对象

    PHP 面向对象 在面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象. 在现实 ...

  10. Python File tell() 方法

    概述 tell() 方法返回文件的当前位置,即文件指针当前位置.高佣联盟 www.cgewang.com 语法 tell() 方法语法如下: fileObject.tell() 参数 无 返回值 返回 ...