前端学习之正则表达式

正则表达式,又称规则表达式,英语名称:Regular Expression,在代码中常简写为regex、regexp或RE。是对字符串操作的一种逻辑公式。

正则表达式主要有3个用处:

1、替换文本,可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字 。例如屏蔽一些骂人的特定文字等。

2、提取字符串中的某些特定字符串。

3、测试字符串的某个模式。例如,输入用户名、密码、电话号码等数据时,对其检测,看是否符合输入要求。这称为数据有效性验证 。

正则表达式语法:普通字符串与特殊字符串(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 

var reg=new RegExp(pattern, attributes)或者var reg=/pattern/      //RegExp是一个对象,就像数组一样。现在建立一个最基本的正则表达式:

var reg=new RegExp("a")//匹配字母a;var reg=new RegExp("a","i")//第二个参数,表示匹配时不分大小写 ;

attributes为可选字符串,包含属性"g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配.

正则方法:search\match\test\replace

search:检索与正则表达式相匹配的值。返回找到第一个匹配值的位置,如果没有找到,则返回-1;

语法:stringObj.search(rgExp) stringObj 必选项 rgExp正则表达式

match:找到一个或多个正则表达式的匹配。使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。

语法:stringObj.match(rgExp)  stringObj-必选项。对其进行查找的 String 对象或字符串文字。

        rgExp-必选项。为包含正则表达式模式和可用标志的正则表达式对象。

replace:替换与正则表达式匹配的子串。

语法:stringObj.replace(rgExp, replaceText)  stringObj-字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。。

test:该方法常用于判断用户输入数据的合法性

该方法的返回值是布尔值,通过该值可以匹配字符串中是否存在于正则表达式相匹配的结果,如果有匹配内容,返回ture,如果没有匹配内容返回false,该方法常用于判断用户输入数据的合法性,比如检验Email的合法性;

基本语法:objReg.test(objStr)      objReg 必选项 RegExp对象名称      objStr 要进行匹配检测的字符串 

元字符:

.   :查找单个字符,除了换行和行结束符。

\w:查找单词字符数字、字母、下划线。

\d:查找数字。

\s:查找空白字符。

\b:匹配单词边界

\n:查找换行符

方括号:

[abc]   :查找方括号之间的任何字符。

[^abc]:查找任何不在方括号之间的字符。

[0-9]:查找任何从 0 至 9 的数字。

[a-z]:查找任何从小写 a 到小写 z 的字符。

[A-z]:查找任何从大写 A 到小写 z 的字符。

量词:

n+  :匹配任何包含至少一个 n 的字符串。+多次匹配

n*:匹配任何包含零个或多个 n 的字符串。

n?:匹配任何包含零个或一个 n 的字符串。

n{X}:匹配包含 X 个 n 的序列的字符串。

n{X,Y}:匹配包含 X 或 Y 个 n 的序列的字符串。

n$:匹配任何结尾为 n 的字符串。

^n:匹配任何开头为 n 的字符串。

括号:

正则表达式的() [] {}有不同的意思。

() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。

(\s*)表示连续空格的字符串。

[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。

{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。 

(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。

[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。

下面记录了一些常用的正则表达式:

用户名 /^[a-z0-9_-]{3,16}$/

密码   /^[a-z0-9_-]{6,18}$/

acas12_aaa@sina.com.cn

电子邮箱   /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/

URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

IP 地址 /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/

/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

HTML 标签 /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/

删除代码\\注释 (?<!http:|\S)//.*$

Unicode编码中的汉字范围 /^[\u2E80-\u9FFF]+$/

“^\d+$"  //非负整数(正整数 + 0)

"^[0-9]*[1-9][0-9]*$"  //正整数

"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)

"^-[0-9]*[1-9][0-9]*$"  //负整数

"^-?\\d+$"    //整数

"^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0)

"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"

//正浮点数

"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0)

"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"

//负浮点数

"^(-?\\d+)(\\.\\d+)?$"  //浮点数

"^[A-Za-z]+$"  //由26个英文字母组成的字符串

"^[A-Z]+$"  //由26个英文字母的大写组成的字符串

"^[a-z]+$"  //由26个英文字母的小写组成的字符串

"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串

"^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串

"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址

"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url

"^[A-Za-z0-9_]*$"。

东西太多记不住啊 啊啊啊啊啊。。。

详细内容请看https://www.jianshu.com/p/a8ce5341094c 

转载于:https://www.cnblogs.com/jay3352/p/5784050.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值