正则表达式

描述

  • 表示用于对一些特定的数据内容制定规则的表达式

创建正则表达式

  • 字面量方式
var 表达式名 = / 参数 / 参数
  • 第一个参数 - 表示定义正则表达式的内容
  • 第二个参数 - 表示定义正则表达式的行为
/* 字面量方式 */
var reg1 = /12345/i;
  • 构造函数方式
var 表达式名 = new RegExp( 参数,[参数] )
  • 第一个参数 - 表示定义正则表达式的内容
  • 第二个参数 - 表示定义正则表达式的行为
/* 构造函数方式 */
var reg2 = new RegExp( '12345', 'i' );

正则表达式的运行

  1. 先定义正则表达式的内容 - 判断条件
  2. 在定义需要判断的数据内容
  3. 最后利用正则表达式来判断指定的内容是否符合要求
  • test()方法 - 用于正则表达式进行判断

    • 参数 - 当前需要判断验证的数据内容
    • 返回值 - 表示验证后的结果(布尔值)

      • true - 表示符合要求
      • false - 表示不符合要求
    • 判断需要在最后进行,之前的定义可以随意顺序
/* 定义需要判断的数据 */
var num = 12345;
/* 定义正则表达式 */
var reg = /12345/;
/* 对指定数据进行判断 */
var s = reg.test( num );
console.log( s );// 显示 true

字符类

  • 将判断条件放进一个中括号里([])组成字符类
  • 字符类允许 需要验证的内容匹配任意条件

    • 只满足一个条件也可以
/* 定义一个字符串 */
var str = '12345';
/* 定义正则表达式 */
var reg = /12345/;
/* 定义字符类 */
var reg = /[12345]/;
/* 字符类的另一种写法 */
var reg = /[0-9]/;
/* 正则表达式的转义字符 */
var reg = /\d/;

/* 显示判断结果 */
var s = reg.test( str );
console.log( s );// 显示 true

重复

  • 表示在表达式中字符出现的次数
  • { n, m }

    • n - 表示最少出现的次数(包含本身)
    • m - 表示最多出现的次数(包含本身)
  • 注意 - 字符出现的次数必须是连续的
/* 定义一个字符串 */
var str = '12345';
/* 定义正则表达式 */
var reg = /[0-9]{2,4}/;
/* 显示判断后的结果 */
var s = reg.test( str );
console.log( s );// 显示 true

匹配指定位置

  • 表示设置匹配数据的位置
  • 上尖角号(^) - 表示以什么开始的
  • 美元符($) - 表示以什么结束的
  • 当同时设置开始和结束时 - 表示所匹配内容的长度只能为至少n次,至多m次,而且内容必须与字符类匹配
  • 匹配结果为布尔值

    • true - 表示匹配
    • false - 表示不匹配
/* 定义一个字符串 */
var str1 = '12345';
/* 设置判断条件 */
var reg1 = /^[0-9]{2,4}/;
/* 显示判断结果 */
var s1 = reg1.test( str1 );
console.log( s1 );// 显示 true

/* 定义一个字符串 */
var str2 = '12345';
/* 设置判断条件 */
var reg2 = /[0-9]{2,4}$/;
/* 显示判断结果 */
var s2 = reg2.test( str2 );
console.log( s2 );// 显示 true

/* 定义一个字符串 */
var str3 = '1234';
/* 设置判断条件 */
var reg3 = /^[0-9]{2,4}$/;
/* 显示判断结果 */
var s3 = reg3.test( str3 );
console.log( s3 );// 显示 true

修饰符

  • 表示正则表达式的行为,用于进一步对指定数据的搜索
  • i - 表示不区分大小写搜索
  • g - 表示全局搜索
  • m - 表示多行搜索
/* 定义一个字符串 */
var str = 'sanbubaitou';
/* 进行条件判断 */
var reg = /^[A-Z]{3,13}$/i;
/* 显示判断结果 */
var s = reg.test( str );
console.log( s );// 显示 true

exec()方法

  • 通过指定数据内容的位置来获取目标的数据内容
  • 该方法具有返回值 - 一个数组

    • 第一个元素 - 表示与指定位置匹配的内容
    • 第二个元素 - 表示匹配内容的对应位置(索引值)
    • 第三个元素 - 表示完整的内容(字符串的全部内容)
  • 如果指定的位置没有相匹配内容,返回的结果为 null
/* 定义一个字符串 */
var str = 'sanbubaitou';
/* 进行条件判断 */
var reg = /s{1}/;
var s = reg.exec( str );
console.log( s );// 显示 [ 's', index: 0, input: 'sanbubaitou' ]

var reg = /w{1}/;
console.log( reg.exec( str ) );// 显示 null

蔡志远
9 声望5 粉丝