RegExp类型

正则表达式是什么?

  • 所谓正则表达式就是是一种表达文本模式的方法,用来给指定的模式来匹配文本(就是验证字符串是否符合预先设置的格式)

创建正则表达式

1.字面量方式/直接量方式

  • var 变量名 = /pattern/attributes

    • pattern - 称为模式,用于定义正则表达式的内容
    • attributes - 称为修饰符,用于定义正则表达式的行为

示例代码:

var reg = /123456789/i;

2.构造函数方式

  • var 变量名 = new RegExp(pattern [, attributes])

    • pattern - 称为模式,用于定义正则表达式的内容
    • attributes - 称为修饰符,用于定义正则表达式的行为

示例代码:

var reg = new RegExp('123456789', 'i');

正则表达式的运行

示例代码:

// 1.定义用于判断是否符合正则表达式的内容
var str = 12345678;
// 2.定义一个正则表达式 - 定义规则
var reg = /123456789/;// 表示当前输入的内容必须全部为数字
/*
    3.利用正则表达式来判断指定内容是否符合规则要求
      RegExp类型提供验证的test(参数)方法
      * str - 表示当前要验证的内容
      * 返回值 - 布尔值,表示验证后的结果
        * true - 表示内容符合定义的规则
        * false - 表示内容不符合定义的规则
  */
var result = reg.test(str);
console.log(result);// 调用结果为 false

字符类

示例代码:

var str  = 'king';

// 正则表达式的内容中定义规则 - 验证的内容是否包含规则
var reg = /123456789/;

// 正则表达式的内容中定义规则 - 验证的内容匹配任何字符即可
var reg = /[0123456789]/;
var reg = /[\d]/;
var reg = /[0-9]/;

var reg = /[a-zA-Z]/;

var result = reg.test(str);
console.log(result);

重复

  • 在JavaScript中的正则表达式用来描述任意多位的数字,或者描述由三个字母和以个数字构成的字符串时,可以使用字符重复的标记

    • {n, m} - 表示字符类中任意字符出现的次数

      • n - 表示至少出现n次(包含n次)
      • m - 表示至多出现m次(包含m次)
  • 注意 - 出现的次数必须是连续的

示例代码:

var str = 'yihu123ayi12shijie';

var reg = /[0-9]{3,5}/;
var result = reg.test(str);
console.log(result);

匹配指定位置

  • 当同时设置开始和结束时 - 表示所匹配内容的长度只能为至少n次,至多m次,而且内容必须与字符类匹配

示例代码:

var str = '12a45';

// 表示以什么开始的
// var reg = /^[0-9]{3,5}/;
// 表示以什么结束的
// var reg = /[0-9]{3,5}$/;
// 表示匹配内容的长度只能为至少n次,至多m次,而且内容必须与字符类匹配
var reg = /^[0-9]{3,5}$/;

var result = reg.test(str);
console.log(result);

修饰符

  • 正则表达式的修饰符

    • i - 表示搜索时不区分大小写
    • g - 表示全局所搜
    • m - 表示多行搜索

示例代码:

var str = 'yihuayishijie';


var reg = /^[A-Z]{8,15}$/i;
var result = reg.test(str);
console.log(result);

exec()方法

  • 作用 - 用于匹配指定内容
  • 返回值 - 数组

    • 第一个元素 - 表示匹配的内容
    • 第二个元素 - 表示匹配内容对应的位置
    • 第三个元素 - 表示完整内容
  • 注意 - 如果不匹配,那么返回的结果为 null

示例代码:

var str = 'yihuayishijie';

var reg = /i{1}/;

 
var result = reg.exec(str);
console.log(result);


a达达
21 声望5 粉丝

引用和评论

0 条评论