javascript 正则表达式

256 阅读4分钟

正则表达式的组成

是由元字符和限定符组成的一个式子
var reg = new RegExp('正则表达','匹配模式')
var reg1 = /[0-9]/g
匹配模式 g 全局匹配 i 忽略大小写

元字符

.表示的是:除\n(空格换行)外任意的字符
[] 表示的是:范围, [0-9] 表示的是0到9之间的任意的一个数字, "789" [0-9]

* [1-7] 表示的是1到7之间的任意的一个数字
* [a-z] 表示的是:所有的小写的字母中的任意的一个
* [A-Z] 表示的是:所有的大写的字母中的任意的一个
* [a-zA-Z] 表示的是:所有的字母的任意的一个
* [0-9a-zA-Z] 表示的是: 所有的数字或者是字母中的一个
* [] 另一个函数: 把正则表达式中元字符的意义干掉    [.] 就是一个.
* | 或者     [0-9]|[a-z] 表示的是要么是一个数字,要么是一个小写的字母
* () 分组 提升优先级   [0-9]|([a-z])|[A-Z]
* ([0-9])([1-5])([a-z]) 三组, 从最左边开始计算
* (()(()))

限定符

*   *表示的是:前面的表达式出现了0次到多次
*    [a-z][0-9]* 小写字母中的任意一个 后面是要么是没有数字的,要么是多个数字的
*    "fdsfs3223323"  [a-z][0-9]*
*    +  表示的是:前面的表达式出现了1次到多次
*    [a-z][9]+  小写字母一个后面最少一个9,或者多个9
*    "fesfewww9fefds"
*    ?  表示的是:前面的表达式出现了0次到1次,最少是0次,最多1次 ,另一个含义:阻止贪婪模式
*    [4][a-z]? "1231234ij"
*  限定符:限定前面的表达式出现的次数
*  {} 更加的明确前面的表达式出现的次数
*  {0,} 表示的是前面的表达式出现了0次到多次,和 *一样的
*  {1,} 表示的是前面的表达式出现了1次到多次,和 +一样的
*  {0,1} 表示的是前面的表达式出现了0次到1次,和 ?一样的
*  {5,10} 表示的是前面的表达式出现了5次到10次
*  {4} 前面的表达式出现了4次
*  {,10} 错误的========不能这么写
*  ^ 什表示的是以么开始,或者是取非(取反) ^[0-9] 以数字开头
*  ^[a-z] 以小写字母开始
*  [^0-9] 取反,非数字
*  [^a-z] 非小写字母
*  [^0-9a-zA-Z_]
*  $ 表示的是以什么结束   [0-9][a-z]$  必须以小写字母结束
*  ^[0-9][a-z] 相当于是严格模式   "3f2432e"  "4f"
*   \d 数字中的任意一个,
*   \D 非数字中的一个
*   \s 空白符中的一个
*   \S 非空白符
*   \w 非特殊符号
*   \W 特殊符号
*   \b 单词的边界
*    . 除了\n以外的任意一个单个字符
*    []  范围
*    () 分组,提升优先级
*    | 或者
*    * 0-多次
*    + 1-多次
*    ? 0-1次
*    {0,} 和*一样
*    {1,} 和+
*    {0,1} 和?
*    \d 数字中的一个
*    \D 非数字
*    \s 空白符
*    \S 非空白符
*     \W  特殊符号
*     \w 非特殊符号 _
*     ^ 取反,以什么开始
*     $ 以什么结束
*     \b 单词边界
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>正则表达式</title>
	</head>
	<body>
		<script type="text/javascript">
			var reg = new RegExp(/\d{5}/)
			var str = '中国移动的客服电话10086'
			var flag = reg.test(str)
			console.log(flag)
			//字面量的方式创建正则表达式
			var reg1 = /\d{1,5}/
			var lag4 = reg1.test('小苏的幸运数字是888')
			console.log(lag4)
			console.log('-------------------------')
			console.log(/[a-zA-Z]+/.test('hello'))
			console.log(/./.test('除了空格与换行外的任意字符'))
			console.log(/.*/.test('出现0到多个'))
			console.log(/.+/.test('出现1到多个'))
			console.log(/.?/.test('出现0到1个'))
			console.log(/[0-9]/.test('辅导辅导辅导55'))
			console.log(/[a-z]/.test('what'))
			console.log(/[A-Z]/.test('Aer'))
			console.log(/b|(are)/.test('bhjjj'))
			console.log(/[a-z]{2,3}/.test('a56666'))
			console.log(/\d/.test('13123'))//\d表示的任意的数字中的一个
			console.log(/\d*/.test('09089i'))
			console.log(/\d+/.test('123214'))		
			console.log(/\d{0,}/.test('123214'))//和*一样 出现0到多个		
			console.log(/\d{0,1}/.test('123214'))//和?一样 出现0到1个		
			console.log(/\d{1,}/.test('123214'))//和+一样 出现1到多个		
			console.log(/\D/.test('efr')) // \D表示非数字中的任意一个
			console.log(/\s/.test('  ')) // \s表示的空白符中的任意一个
			console.log(/\S/.test('sdsdsd')) // \S表示的非空白符中的任意的一个
			console.log(/\W/.test('@@@@____++++')) // \W表示的 是 特殊符号中的任意一个
			console.log(/\w/.test('_')) // \w表示的是非特殊符号中的任意一个
		</script>
	</body>
</html>