前端正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端正则表达式相关的知识,希望对你有一定的参考价值。

在前端的开发中很少人会用到正则表达式(RegExp)去写函数,其实正则表达式的效率会比一般的逻辑代码要快很多,但是它也有一个特点就是不容易掌握。

正则引擎主要可以分为两大类:一种是DFA,一种是NFA。

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
 
 
 

一个正常的正则表达式的语法应该是  

/正则表达式主体/修饰符

在字符串方面RegExp有两个方法:

search()     用于检索字符串中指定的子字符串,或检索与RegExp相匹配的子字符串并返回子串的起始2位置。

replace()    用于字符串中一些字符替换另一些字符,或替换一个与正则表达式相匹配的子串。

match()      方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

test()          方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

exec()        方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

创建方式局我了解的话有两种:

1、

var newregexp = new RegExp("//此处写入表达式的式子","此处写入g或i或gi或m,主要写入是是否全局匹配");

2、

var newregexp = /  表达式  /gi

  

一些常见的标识符:

元字符:

\\d	查找数字。
\\s	查找空白字符。
\\b	匹配单词边界。
\\uxxxx	查找以十六进制数 xxxx 规定的 Unicode 字符。

表达式:

方括号用于查找某个范围内的字符:

[abc]	查找方括号之间的任何字符。
[0-9]	查找任何从 0 至 9 的数字。
(x|y)	查找任何以 | 分隔的选项。

量词:

n+	匹配任何包含至少一个 n 的字符串。
n*	匹配任何包含零个或多个 n 的字符串。
n?	匹配任何包含零个或一个 n 的字符串。

以下部分都是引用的:

来源:https://www.cnblogs.com/jay3352/p/5784050.html

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

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

(\\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}$/

[email protected]

电子邮箱   /^([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_]*$"。

  

以上是关于前端正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

前端正则表达式

前端进阶必须知道的正则表达式知识

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串