JS- 正则表达式

2017-10-27  本文已影响0人  大大的小小小心愿

一、正则表达式:对字符串进行模式匹配的强大工具。
用来检查一个串是否含有某种子串,将匹配的子串替换或者从某个子串中取出某个符合条件的子串等。
正则:规则
正则属性:设置条件(如匹配一个还是多个)
二、创建正则

1、直接量、字面量
    var reg = / flower/;
2、对象的方式
    var reg = new RegExp("flower","");

三、找到正则表达式的匹配的值 match()

console.log(str.match(reg2));

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
三、元字符 (6) [正常情况下只代表一个字符]

 \d  (digtal)   数字
 \w  (world)    数字字符,包括:数字、字母、下滑线
 \s (spacing)   空白字符,包括:空格、换行(\n)、\t
 \n             换行符
  .             所有字符,不包括:换行符、结束符(JS无结符:\0)

 \b              单词边界
      \bbox\b:box这个单词
      \bbox  :以单词开头的box
      box\b  :以单词结尾的box

[\u4e00-\u9fa5]  匹配汉字

四、量词

//  +        一个或多个
//  *        零个或多个
//  ?       零个或一个
//  n{x}     x个n
//  n{x,y}   x-y个n(n{2,4}:2个或3个或4个n)  注:x<y,且多的符合条件的话,先匹配。
//  ^x       作为字符串开头的x  
//  x$       在字符串结尾的x 

关于量词!!!:

    var reg1 = /5+/g;

    var reg9 = /^\d/g; 
    // 以数字开头

    var reg4 = /\w*/g;  
    // 把所有的去掉后,剩下一个空的字符串。也算一个空

    var reg10 = /^/g;  
     // 整个字符开头,后面的是空字符。打印 “”

    var reg11 = /^\s/g;
    // 以空格开头

    var reg11 = /^sg$/g;  
    // 以sg开头,以sg结尾 (sg才能满足条件)

    var reg11 = /^s.g$/g;  
    // 以s开头g结尾  中间:.是元字符代表一个,所以s和g之间只能有一个字符

    var reg14 = /^s.*g$/g; 
    // 以s开头以g结尾的 中间:所有元字符的零个或多个

    var reg15 = /^s\w+n$/g; 
    // 以s开头以g结尾 \w+ 一个或多个单词

五、中括号[ ]

    // [123]  匹配123中的任何一个  
    // [^123] 匹配123以外的任意字符
    // [12345] 可以写成 [1-5] 1到5中的任何一个  

关于 [ ]!!!

var reg1 = /[123][234]/g;
//匹配 两个字符,第一个是[123],第二个是[123]

var reg1 = /[123]{2}[234]/g;  
//匹配[123][123][234]

var reg1 = /[1-356-8]*/g;   
// 1-3 5 6-8

var reg1 = /[A-Za-z]*/g;   
//所有大小写字母

六、匹配 ()

  (3|5) 括号代表一个整体,占一位。 | 或者。3或者5
  匹配有特殊含义的字符要加 \  ,如: + . ? *

关于匹配:

var reg1 = /(3|2[13])/g;  
    // 3 或者 2[13](21 或者 23)
var reg1 = /(3|2[13])+/g; 
    // 3 或者 2[13](21 或者 23) 或者 3  21 23 都有的(每个都可有多个匹配)

注:
1、g:代表匹配所有满足条件的。

  var reg = /flower/g

2、字符串的 replace支持正则, /g可替换所有
3、满足正则查找条件时,会尽可能匹配多的字符
4、一般只加元量,只是一个值,加了量词后才是多个词

上一篇下一篇

猜你喜欢

热点阅读