RegExp类型

概述

正则表达式是什么

正则表达式(Regular Expression):由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式。
正则表达式常用在一段文本中搜索、匹配、或者替换特定形式的文本。

创建正则表达式

/*     var 变量名 = /pattern/attributes
*        pattern - 模式,定义正则表达式的内容
*        attributes - 修饰符,定义正则表达式的行为*/

var reg = /0123456789/i;

//构造函数方式
var reg = new RegExp(/pattern/attributes);

符号

字符类

var str = '12345abc';//要验证的内容

//下面三个正则表达式它们的意义相同
var reg = /[0-9]/;//要验证的内容匹配正则表达式的任意内容即可
var reg = /[/d]/;
var reg = /[0123456789]/;

console.log(reg.test(str));//true

重复

var str = '12345678';

/*      {n,m}
*        n - 表示最少出现的次数
*        m - 表示最多出现的次数
*      注意:出现的次数必须是连续的*/

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

var str1 = '1abc2';
console.log(reg.test(str1));//false

匹配指定位置

var str = '123a456';

// ^ - 表示以什么开始
var reg = /^[0-9]{3,5}/;

// $ - 表示以什么结束
var reg = /[0-9]{3,5}$/;

//表示匹配内容的长度最少n次,最多m次,且匹配内容必须与字符类匹配
var reg = /^[0-9]{3,5}$/;
console.log(reg.test(str));//false

修饰符

  • i - 不区分大小写匹配
  • g - 全局匹配
  • m - 多行匹配
var str = 'maowuyu';

//修饰符 i 表示不区分大小写
var reg = /[A-Z]{3,6}/i;
console.log(reg.test(str));//true

exec()方法

var str = 'maowuyu , shangwuyu , 123';

var reg = /[a-z]{3,5}/;

/*   exec()方法
*      返回值-数组
*        *第一个元素-匹配的内容
*        *第二个元素-匹配内容的位置
*        *第三个元素-完整内容
*      不匹配时,返回的结果为null*/
console.log(reg.exec(str));//[ 'maowu', index: 0, input: 'maowuyu , shangwuyu , 123' ]

String类型

常见操作

大小写转换

var reg1 = 'maowuyu';

var reg = new String('shangwuyu');

//toUpperCase()方法 - 转换为大写
console.log(reg1.toUpperCase());//MAOWUYU
//toLowerCase()方法 - 转换为小写
console.log(reg1.toLowerCase());//maowuyu

获取指定位置的字符串

var str = 'maowuyu';
//获取字符串长度
console.log(str.length);//7

/*    charAt - 根据指定位置获取相应的字符串
*     charCodeAt - 根据指定位置获取相应的字符串的Unicode码*/
console.log(str.charAt(4));//u
console.log(str.charCodeAt(4));//117 - Unicode码

检索字符串

var str = 'maowuyu';
//indexOf()  -  根据指定内容返回位置 - 从左向右
console.log(str.indexOf('w'));//3
//lastindexOf()  - 根据指定内容返回位置 - 从右向左
console.log(str.lastIndexOf('u'))//6

截取字符串

var str = 'maowuyu';

/*   slice()方法 -  截取指定开始和结束位置的字符串
*      参数
*       start - 表示开始截取的位置
*       end - 表示结束结束截取的位置的下一个位置*/
console.log(str.slice(2,5));//owu
console.log(str.slice(-5,-1));//owuy

/*    substring()方法 - 截取指定开始和结束位置的字符串
*       参数 - 只能为大于等于0的值
*        start - 开始截取的位置
*        end - 结束截取的位置的下一个位置
*       */
console.log(str.substring(2,5));//owu

/*     substr()方法 - 截取指定开始位置和长度的字符串
*       参数
*         start - 开始截取的位置
*         length - 截取的长度*/
console.log(str.substr(2,4));//console.log(str.slice(2,5));//owu
console.log(str.slice(-5,-1));//owuy

分隔字符串

var str = 'maowuyu';
//split() - 把字符串分隔为字符串数组
console.log(str.split(''));//[ 'm', 'a', 'o', 'w', 'u', 'y', 'u' ]

console.log(str.split(','));//[ 'maowuyu' ]

连接字符串

var str1 = 'abc';
var str2 = str1.concat('123','df');
console.log(str2);//abc123df

模式匹配

替换子字符串

var str ='Microsoft is a big Company, microsoft’s color is red and has MICROSOFT logo like microsoft';

/*    replace()方法
*       作用 - 匹配字符串中的指定内容,并将之替换为新的指定内容
*       参数
*        *reg - 定义正则表达式(搜索指定内容)- 被替换的内容
*        str - 表示替换的内容
*       返回值 - 返回替换后的新字符串
*       */
//; i - 不区分大小写匹配;  g - 全局匹配
console.log(str.replace(/microsoft/ig,'hua'));
//hua is a big Company, hua’s color is red and has hua logo like hua

匹配字符串

match()方法 - 查找匹配正则的值

var str = 'hua is a big Company, hua’s color is red and has hua logo like hua';

/*     match() - 匹配字符串
*       返回值 - 数组
*         *第一个元素 - 匹配的内容
*         *第二个元素 - 匹配内容第一个字符的位置
*         *第三个元素 - 完整的字符串内容
 *      当匹配的内容数量大于一个,->返回所有匹配内容*/
console.log(str.match(/hua/));

console.log(str.match(/hua/g));//[ 'hua', 'hua', 'hua', 'hua' ]

查找字符串

  • search()方法用于查找与正则匹配的值
var str = '\'Microsoft is a big Company, microsoft’s color is red and has MICROSOFT logo like microsoft';
/*
    search(reg)方法
    * 作用 - 查找指定字符串中的指定内容
    * 参数
      * reg - 表示正则表达式
    * 返回值
      * 如果只匹配一个指定内容的话,返回匹配内容第一个字符的索引值
      * 如果匹配是多个指定内容的话,返回第一个匹配内容的第一个字符的索引值
 */
var result = str.search(/microsoft/ig);
console.log(result);

李威振
16 声望5 粉丝

别离时方知此世间,花亦花来人亦人