欢迎来到站长教程网!

JavaScript

当前位置:主页 > 网页制作 > JavaScript >

JavaScript 正则应用详解【模式、欲查、反向引用等

时间:2020-05-22|栏目:JavaScript|点击:

正则表达式在web开发中的常用

邮箱验证
用户名验证
替换字符串某一部分
信息采集,用来分析有效代码段
...

有规律的字符串描述

正则表达式是一门独立的知识,同样的一段描述,比如,对于email的匹配表达式,在不同的语言是一样的,但是调用的函数不同。

正则表达式--规则表达式

正则表达式:
正则表达式语法:正则表达式语法
正则表达式语言:正则表达式语言

准备性的工作

在js中,如何写正则表达式。 /RegExp/

在js里,用正则表达式来验证字符串是否满足, 使用 reg.test(str);

用正则表达式的exec函数,用来查找匹配的选项,并把查找的值取出。

reg.test(str); 返回true 或者false 。 常在表单验证中使用。

<from action="xxx.php"> <p>请输入姓名:<input type="text" /></p> <p>请输入年龄:<input type="text" /></p> <p><input type="submit" /></p> </from> <script> var oBD = document.getElementById('biaodan'); var oName = document.getElementById('name'); var oAge = document.getElementById('age'); //表单试图提交的时候,触发onsubmit事件 //这个函数返回了false,表单不会被提交 oBD.onclick = function(){ //验证name if( !/^[\u4e00-\u9fa5]{2,4}$/.test(oName.value) ) return false; //验证年龄 if( !/^\d{2,3}$/.test(oAge.value) ) return false; if( parseInt( oAge.value )<10 || parseInt( oAge.value )>104 ) alert('您输入的年龄不在范围') return false; return true; } </script>

exec(); 返回 数组 或 null。
exec是英语execute的意思,CEO首席执行官,E就是executive执行的
“执行” 把正则式放到字符串上执行
每次执行结果按序输出,不管结果有几个,一次只输出一个 ,如果多次输出,会保持前面的引用。当匹配超过原字符串的时候,会返回null。然后遇到null,指针返回到匹配的字符的第一位。 具有迭代器的感觉。

var str = 'ABCDEFG1234567abcdefg'; var reg = /[a-z]/g; console.log( a=http://www.zhano.cn/[a-z]/g.exec(str) ); var a; while( a=reg.exec(str) ){ //这边 null 为 fasle。 exec() 会保持对前面一次的引用。 需要使用 值来赋值。 console.log( a ); }

使用exec() 找最大子串

var str = 'AAABBBCCCCCCC'; var reg = /(\w)\1+/g; var maxLength = 0; var maxLetter = ''; var a; while( a=reg.exec(str) ){ if( a[0].length>maxLength ){ maxLength = a[0].length; maxLetter = a[0]; } } console.log( maxLetter );

JavaScript 正则应用详解【模式、欲查、反向引用等

var str='BCDEFG1234567abcdefg'; var reg = /[a-z]/g; var a; while( (a=reg.exec(str)) != null ){ //先赋值给a,然后再与后边判断。 console.log( a ); }

JavaScript 正则应用详解【模式、欲查、反向引用等

str.match( reg ); //查找,匹配到,返回数组
str.split( reg ); //拆分,返回数组
str.serch( reg ); //查找位置
str.replace( reg,'new str'); //正则替换,返回string

//测试是否含有hi var reg = /hi/; //仅看字符串是否有 hi console.log( reg.test('hello') ); //fasle console.log( reg.test('this is iqianduan') ); //true //测试单词 hi var reg01 = /\bhi\b/; console.log( reg01.test('this is') ); //false console.log( reg01.test('this is, hi,his') );//true

正则表达式 3 句话

要找什么字符?
从哪儿找?
找几个?

要找什么字符

字面值, ‘hi' ,就是找‘hi'。

用字符的集合来表示 , [abcd], 指匹配abcd中任意一个

//找不吉利的数字 //3,4,7 var reg = /[3,4,7]/; //字符集合, 不能使用 /347/ 字面值表示,是表示整体。 console.log( reg.test('12121212') );//false console.log( reg.test('12341234') ); //true

用范围表示字符 , [0-9] [0123456789] [a-z] [A-Z]

// var reg = /[0123456789]/; var reg = /[0-9]/; console.log( reg.test('123afsdf') ); //true console.log( reg.test('asdf') ); //false //是否有大写字母 var reg = /[A-Z]/; console.log( reg.test('asdf') );//false console.log( reg.test('Tomorrow is another day') ); //true

字符簇, 花团锦簇-> 一坨字符。

系统为常用的字符集合,创建的简写.
例如:

[0-9] --> \d

[0-9a-zA-Z_] --> \w .. 域名,注册用户名常用的模式.

[\t\v\f\r\n] --> \s 空白符.

//是否含有数字 var reg = /\d/; console.log( reg.test('123afsdf') ); //true console.log( reg.test('asdf') ); //false

补集的形式来表示字符集合 在集合前面使用表示补集。

[0-9]---> [^0-9] ^ 脱字符号: 念法: caret。['kærət] 。

[abcdef]-->[^abcdef]

//验证全为数字
var reg = /^[0-9]/; //匹配非数字
// var reg = /^d/ //字符簇补集
console.log( reg.test('aaaaa') );//非数字存在 false
console.log( reg.test('123aaa') ); //有数字存在 true

字符簇的补集:

d -- > D(非数字)

s --> S(非空白字符)

w --> W

任意字符 : . 唯独不包括换行符

从哪儿找,找到哪儿

b 单词边界

/bhi/ --> 从单词的边界开始匹配hi。

上一篇:JavaScript Tab菜单实现过程解析

栏    目:JavaScript

下一篇:js中!和!!的区别与用法

本文标题:JavaScript 正则应用详解【模式、欲查、反向引用等

本文地址:http://www.blue1000.com/wangyezhizuo/JavaScript/1401.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:1961407250 | 邮箱:1961407250#qq.com(#换成@)

Copyright © 2002-2022 BK网络学院版权所有 Power by DedeCms 粤ICP备19027147号-7