正则表达式整理

随着正则用的越来越普遍,今天正好有时间整理一下

https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin

基础概念上面文章中有

正则表达式(Regular Expression)是一种文本模式,包括普通字符和特殊字符(元字符)

正则表达式常见的方法

test()方法:用于检测一个字符串是否匹配某个模式。语法:regexp.test(str);

test()方法检查是否与给出的表达式模式相匹配,如果是则返回true,否则返回false

举个简单的实例

var str="abc123def";   //字符串
var patt=/d{3}/;  //正则表达式(包含3个数字)
document.write(patt.test(str));  //true

match()方法:可在字符串内找到一个或多个指定正则表达式匹配的子字符串。方法返回值存放在匹配结果的数组中

var str="abc123def";
var patt=/d{3}/;
document.write(str.match(patt)); //123   返回值

exec()方法:和match()非常相似,区别它是唯一一种获得全局模式的完整模式匹配信息的方法。

exec方法每次只匹配一个;在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置.

var str = "Visit W3School, W3School is a place to study web technology."; 
var patt = new RegExp("W3School","g");
var result;

while ((result = patt.exec(str)) != null)  {
  document.write(result);
  document.write("<br />");
  document.write(patt.lastIndex);
}
//W3School 14 W3School 24

 例举几个常用的,具体看一看上面那个链接文章

[xyz] [a-z] [A-Z] [0-9] 这个是一个范围 只要在这个范围内就匹配 比如[xyz] 可以匹配"x292393"或者"y887"

+ (大于等于1次)

var str="去年是2018年,今年是2019年";
var patt=/d+/g; //匹配字符串里面所有数字  这样写也可以 var patt=/[0-9]+/g; //匹配字符串里面所有数字
document.write(str.match(patt).join("")) //20182019

? 通配符匹配0或者1个字符

* 0或者多个字符

var str = "1232222abc";
var patt1 = /^[0-9]+abc$/;
document.write(str.match(patt1));  //1232222abc
[a-z] //匹配所有小写字母
[A-Z] //匹配所有的大写字母
[a-zA-Z] //匹配所有的数字
[0-9] //匹配所有的数字
[0-9.-] //匹配所有的数字,句号和减号
d  //匹配一个数字字符
D  //匹配一个非数字字符
s  //匹配任何不可见字符
S //匹配任何可见字符
w //匹配包括下划线的任何单词字符  
W  //匹配任何非单词字符
f //匹配一个换页符
//匹配一个回车符
//匹配一个制表符
//匹配一个换行符
[f ]
^[a-z][0-9]$ //

var str="a1";
var str1="aw2";
document.write(str.match(/^[a-z][0-9]$/)) //a1
document.write(str1.match(/^[a-z][0-9]$/)) //null
 
[^0-9] //除了数字紫外的所有字符这里的^表示非
^[a-zA-Z_]$ //所有的字母和下划线
^a$ //字母a
^a{4}$ //4个字母a
^a{2,4}$ //aa,aaa,aaaa
^a{2,}$ //包含多于两个a的字符串
. 号 //匹配除“ ”和" "之外的任何单个字符。
{n}  //匹配确认的n次
{n,} //至少匹配n次
{n,m} //最少匹配n次且最多匹配m次
 
^[a-zA-Z0-9_]{1,}$ //所有包含一个以上的字母、数字或下划线的字符串
^[1-9][0-9]{0,}$ //所有正整数
^-{0,1}[0-9]{1,}$ //所有整数
^[-]?[0-9]+(.[0-9]+)?$ // 所有的浮点数
 
 常用实例 用test()方法
数字:^[0-9]*$  //只有字符串全部是数字才会true
3位的数字   /^d{3}$/   
最少3位的数字  /^d{3,}$/
3-5位的数字  /^d{3,5}$/
正整数  /^[1-9][0-9]*$/
汉字: /^[u4e00-u9fa5]{0,}$/
英文和数字 :/^[A-Za-z0-9]+$/
 
 
 
 
原文地址:https://www.cnblogs.com/zhihou/p/10916391.html