js正则表达式详解
一、正则的两种写法:
var re = /a/; //一般情况下都用简写的方式 性能好
var re = new RegExp('a'); //需要传入参数的时候用
二、转义字符:
\n 换行
\r 制表
\t 回车
\s 空格
\S 非空格
\d 数字
\D 非数字
\w 字符 ( 字母 ,数字,下划线_ )
\W 非字符
. 任意字符
\. 真正的点
\b 独立的部分 ( 起始,结束,空格 )
\B 独立的部分
\1 重复的第一个子项
\2 重复的第二个子项
三、正则的方法:
1、test:正则去匹配字符串,如果匹配成功就返回真,如果匹配失败就返回假;test的写法 : 正则.test(字符串)
var str = '374829348791'; var re = /\D/; alert( re.test( str ) ); // false 匹配失败
2、search : 正则去匹配字符串 , 如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回 -1(和字符串里面的indexOf方法很像);search的写法 : 字符串.search(正则)
正则中的i:正则中默认是区分大小写的;如果不区分大小写的话,在正则的最后加标识 i
var str = 'abcdef';
var re = /B/i;
//var re = new RegExp('B','i'); //也可以写成这种形式
alert( str.search(re) ); //true
3、match : 正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null;match的写法 : 字符串.match(正则)
正则默认:正则匹配成功就会结束,不会继续匹配;如果想全部查找,就要加标识 g(全局匹配)
量词 : 匹配不确定的位置;+ : 至少出现一次(>=1次 都会被找到)
var str1 = 'asdhfgsaghd12332slsd34'; var re = /\d+/g; alert( str1.match(re)); //[12332,34]
4、replace:正则去匹配字符串,匹配成功的字符去替换成新的字符串;replace的写法 : 字符串.replace(正则,新的字符串)
var str = 'aaa';
var re = /a+/g; //此时'a'替换了'aaa' str = str.replace(re,'b'); alert(str); //'b'
四、匹配子项 : 小括号 () (还有另外一个意思,分组操作)
var str = '2013-6-7';
var re = /(\d+)(-)/g;
str = str.replace(re,function($0,$1,$2){
//第一个参数:$0(整体)
//第二个参数 : $1(第一括号里的正则)
//第三个参数 : $2(第二个括号里的正则)
//alert( $2 );
//return $1 + '.';
return $0.substring(0,$0.length-1) + '.';
});
alert( str ); //2013.6.7
五、字符类 : 一组相似的元素 [] 中括号的整体代表一个字符
var str = 'abdc'; var re = /a[bde]c/; //字符类中的是“或”的关系 但是整体的位数要和字符串的一致 alert( re.test(str) ); //true
排除 : ^ 如果^写在[]里面的话,就代表排除的意思
var str = 'abc'; var re = /a[^bde]c/; //取反 alert( re.test(str) ); //false
六、找出字符串中最多的字符和个数:
var str = 'assssjdssskssalsssdkjsssdss';
var arr = str.split('');
str = arr.sort().join('');
//alert(str);
var value = '';
var index = 0;
var re = /(\w)\1+/g;
str.replace(re,function($0,$1){
//alert($0);
if(index<$0.length){
index = $0.length;
value = $1;
}
});
alert('最多的字符:'+value+',重复的次数:'+index);
七、量词:出现的次数,常用的量词有:
{n,} 至少n次
* 任意次 {0,}
? 零次或一次 {0,1}
+ 一次或任意次{1,}
{n} 正好n次
八、去掉前后空格:^开始 $结束
var str = ' hello ';
function trim(str){
var re = /^\s+|\s+$/g;
return str.replace(re,'');
}
alert( '('+trim(str)+')' );
九、常用的正则例子(高级表单验证)
匹配中文:[\u4e00-\u9fa5]
行首行尾空格:^\s*|\s*$
Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$
网址:[a-zA-z]+://[^\s]*
QQ号:[1-9][0-9]{4,9}
邮政编码:[1-9]\d{5}
身份证:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x
js正则表达式详解的更多相关文章
- js正则表达式详解及示例讲解
所谓正则表达式,简单来说就是一种规则,一种计算机能读懂的规则.js中的正则表达式语法是Perl5(一种很早的编程语言)的正则语法的子集.本文将在基础知识的基础上添加示例帮助快速理解正则表达式. 学习正 ...
- JS 正则表达式详解
在此提供相关的链接,请访问: http://www.cnblogs.com/dolphinX/p/3486214.html http://www.cnblogs.com/dolphinX/p/3486 ...
- JS 正则表达式^$详解,脱字符^与美元符$同时写表示什么意思?
壹 ❀ 引 对于初学正则的同学来说,^$这两个看似简单的字符却在使用中总让匹配结果超出我们的预期,^什么时候表示行首什么时候表示反义?^ $两个一起写表示什么含义?今天我们就来详细聊聊这两个字符. ...
- JavaScript正则表达式详解(一)正则表达式入门
JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Java 正则表达式详解_正则表达式
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- js对象详解(JavaScript对象深度剖析,深度理解js对象)
js对象详解(JavaScript对象深度剖析,深度理解js对象) 这算是酝酿很久的一篇文章了. JavaScript作为一个基于对象(没有类的概念)的语言,从入门到精通到放弃一直会被对象这个问题围绕 ...
- Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...
- (转)linux正则表达式详解
linux正则表达式详解 http://blog.csdn.net/wuliowen/article/details/64131815 1:什么是正则表达式: 简单的说,正则表达式就是处理字符串的方法 ...
随机推荐
- Linux运行级别简介
init 0 : 关机 init 1 : 单用户模式 root init 2 : 多用户模式 不能使用 net file system init 3 : 完全多用户模式 init 4 : 多用户的安 ...
- (29)网络编程之TCP通信协议
TCP通信协议特点: 1.tcp协议是基于IO流进行数据的传输,是面向链接的. 2.tcp进行数据传输的时候,数据没有大小限制的. 3.面向链接,通过三次握手的机制,保证数据的完整性,是一个可靠的协议 ...
- (6)简单说说java中的线程
先甩出来两种创建线程的方法: private static int count = 100; public static void main(String[] args) { // 用继承Thread ...
- Struts2之Action与配置文件
一.Struts2配置文件 1.struts.properties 在学习Action之前先学下Struts2的配置文件,与Struts2相关的配置文件有好几个,常用的有Struts.xml,web. ...
- js面向对象-原型链
var Person = function (name) { this.name = name; } Person.prototype.say = function () { console.log( ...
- js求三位数的和
例如输入508就输出5+0+8的和13: <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- 【C语言】printf()函数详解
printf函数称为格式输出函数,其关键字最末一个字母f即为"格式"(format)之意.其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上.在前面的例题中我们已多次使用过这 ...
- js获取url中的参数方法
直接调用函数即可,函数如下: function getURLParam(name) { return decodeURIComponent((new RegExp('[?|&]' + name ...
- JDK中日期和时间的几个常用类浅析(五)
LocalDateTime LocalDateTime是JDK8中才引入的类,用来表示不包含时区信息的本地日期和时间.我们可以把LocalDateTime看作是LocalDate和LocalTim ...
- Windows下检测文件名大小写是否匹配
跨平台开发有一个众所周知,但因为只是偶尔受到困扰,一般人不会在意的问题,就是windows对文件名大小写不敏感,而其他平台对文件名大小写敏感.因此可能出现在windows平台开发时一切正常,但部署/打 ...