正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

创建方式:
  • 正则表达式自变量
    语法:/正则表达式主体/修饰符(可选)例:
var reg = /abc/;
  • new RegExp(),RegExp()中有两个参数,参数1为正则规则,参数2为正则表达式修饰符
var reg =new RegExp("abc");
正则表达式修饰符
  • i:执行对大小写不敏感的匹配。
  • g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
  • m:执行多行匹配。
正则表达式模式

方括号用于查找某个范围内的字符,一个对方括号占一位字符:

  • [abc] :查找方括号内的任何字符,例:
var reg=/[ad]/;//查找第一位为a或者d字符串
var str = "abc";
console.log(reg.test(str));//true
  • [0-9]、[a-z]、[A-Z]、[A-z]、[0-9A-z]:查找方括号之间的任何字符,例:
var reg=/[0-9]/;//查找第一位为0-9的字符串
var str = "abc";
console.log(reg.test(str));//false
  • [^ab]:查找给定集合外的任何字符,例:
var reg=/[^ab]/;//查找第一位不是a或b的字符串
var str = "abc";
console.log(reg.test(str));//true
  • (x|y) :查找任何以 | 分隔的选项,例:
var reg=/[ab|b];//查找第一位是a、b或b的字符串
var str = "abc";
console.log(reg.test(str));//true
元字符
  • *:查找单个字符,除了换行和结束符
  • \w:相当于[0-9A-z]
  • \W:相当于[0-9A-z]、[\w]
  • \d:相当于[0-9]
  • \D:相当于[0-9]、[\d]
  • \s:查找空白字符,相当于[\t\f\r\n\v]
  • \S:查找非空白字符,相当于[\t\f\r\n\v]、[\s]
  • \b:单词边界
  • \B:非单词边界
  • \uxxxx:查找以十六进制数 xxxx 规定的 Unicode 字符
量词
  • n+:匹配任何包含至少一个 n 的字符串{}。
  • n*:匹配任何包含零个或多个 n 的字符串。
  • n?:匹配任何包含零个或一个 n 的字符串。
  • n{x}:匹配任何包含x个 n 的字符串。
  • n{x,y}:匹配任何包含x到y个 n 的字符串。
  • n$:匹配以n结尾的字符串
  • ^n:匹配以n开头的字符串
  • ?=n:匹配任何其后紧接着指定字符串n的字符集
  • ?!n:匹配任何其后没有紧接着指定字符串n的字符集

例题

1、检验一个字符串首尾是否是数字?

var reg=/^\d|\d$/;
var str = "0abc";
console.log(reg.test(str));//true

2、检验一个字符串首尾是否都是数字?

var reg=/^\d[\w\W]*\d$/;
var str = "0abc1";
console.log(reg.test(str));//false

3、将the-first-name转换为theFirstName

var reg=/-(\w)/g;
var str="the-first-name";
console.log(str.replace(reg,function($,$1){
  return $1.toUpperCase();
}));//theFirstName

4、字符串去重,例如将"aaaaaabbbbcccccccccddddddd"改为"abcd"

var reg1=/(\w)\1*/g;
var str1="aaaaaabbbbcccccccccddddddd";
console.log(str.replace(reg1,$1));//abcd

5、将100000000000改为100.000.000.000。

var str="100000000000"
var reg=/(?=(\B)(\d{3})+$)/g;
console.log(str.replace(reg,"."));//100.000.000.000

你可能感兴趣的:(正则表达式)