美文网首页
正则表达式

正则表达式

作者: llpy | 来源:发表于2017-02-06 19:35 被阅读22次

创建正则表达式

var r = /a/;

正则.test(字符串)

正则去匹配字符串,如果匹配成功就返回真,如果匹配失败就返回假

var str = 'abcdef';
var re = /b/;

alert( re.test(str) );

转义字符

\s : 空格
\S : 非空格
\d : 数字
\D : 非数字
\w : 字符 ( 字母 ,数字,下划线_ )
\W : 非字符

(大写都是反义)

例子: 判断是否全为数字

var str = '374829348791';

var re = /\D/;

if( re.test(str) ){
    alert('不全是数字');
}
else{
    alert('全是数字');
}

字符串.search(正则)

正则去匹配字符串 , 如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回 -1

var str = 'abcdef';

var re = /b/;

alert( str.search(re) );

正则中的默认 : 是区分大小写的
如果不区分大小写的话,在正则的最后加标识 i

var str = 'abcdef';

var re = /B/i;

alert( str.search(re) );

字符串.match(正则)

正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null

var str = 'haj123sdk54hask33dkhalsd879';

var re = /\d/;

alert( str.match(re) );

正则默认:正则匹配成功就会结束,不会继续匹配
如果想全部查找,就要加标识 g(全局匹配)

var str = 'haj123sdk54hask33dkhalsd879';

var re = /\d/g;

alert( str.match(re) );

查找连在一起的数字

var str = 'haj123sdk54hask33dkhalsd879';

var re = /\d\d/g;

alert( str.match(re) );//只会找到12 54 33 87

量词 : 匹配不确定的位置
+ : 至少出现一次

var str = 'haj123sdk54hask33dkhalsd879';

var re = /\d+/g;

alert( str.match(re) );

字符串.replace(正则,新的字符串)

正则去匹配字符串,匹配成功的字符去替换成新的字符串

var str = 'aaa';
var re = /a+/g;

str = str.replace(re,'b');

alert(str);

例子:关键字过滤

//菲称仁爱礁附近17艘中国船均在菲军监视之下

//| : 或的意思

//replace : 第二个参数:可以是字符串,也可以是一个回调函数

var aT = document.getElementsByTagName('textarea');
var oInput = document.getElementById('input1');

var re = /菲称|中国船|监视之下/g;

oInput.onclick = function(){
    
     //aT[1].value = aT[0].value.replace(re,'*');
     
     aT[1].value = aT[0].value.replace(re,function(str){
    //函数的第一个参数:就是匹配成功的字符     
    
         //alert( str );
         
         var result = '';
         
         for(var i=0;i<str.length;i++){
             result += '*';
         }
         
         
         return result;
         
     });
    
};

匹配子项 : 小括号 () (还有另外一个意思,分组操作)

把正则的整体叫做(母亲)
然后把左边第一个小括号里面的正则,叫做这个第一个子项(母亲的第一个孩子)
第二个小括号就是第二个孩子

var str = '2013-6-7';

var re = /(\d+)(-)/g;

str = str.replace(re,function($0,$1,$2){
    //第一个参数:$0(母亲),第二个参数 : $1(第一个孩子)
    //,第二个参数 : $1(第二个孩子)
    
    //alert( $2 );
    
    return $1 + '.';
    
});

alert( str );   //2013.6.7

字符类

一组相似的元素 [] 中括号的整体代表一个字符

var str = 'abc';

var re = /a[bde]c/;

alert( re.test(str) );

排除 : ^ 如果^写在[]里面的话,就代表排除的意思

var str = 'afc';

var re = /a[^bde]c/;

alert( re.test(str) );
var str = 'abc';

var re = /a[a-z0-9A-Z]c/;

alert( re.test(str) );

例子:过滤标签

替换前<br />
<textarea>
</textarea><br />
替换后<br />
<textarea>
</textarea><br />
<input type="button" value="确定" id="input1" />
<script>
window.onload = function(){
    var aT = document.getElementsByTagName('textarea');
    var oInput = document.getElementById('input1');
    
    //var re = /<\w+>/g;
    
    var re = /<[^>]+>/g;
    
    oInput.onclick = function(){
        
        aT[1].value = aT[0].value.replace(re,'');
        
    };
    
};
</script>

转义字符

. : 任意字符
. : 真正的点

\b : 独立的部分 ( 起始,结束,空格 )
\B : 非独立的部分

//var str = 'one two';
var str = 'onetwo';

var re = /one\b/;

alert( re.test(str) );

量词 : {}

{4,7} : 最少出现4次,最多出现7次
{4,} : 最少出现4次
{4} : 正好出现4次

  • : {1,}
    ? : {0,1} : 出现0次或者1次
  • : {0,} : 至少出现0次*/

例子:判断是不是qq号

var re = /^[1-9]\d{4,11}$/;

邮箱:

var re = /^\w+@[a-z0-9]+(\.[a-z]+){1,3}$/;

重复的子项

\1 : 重复的第一个子项
\2 : 重复的第二个子项

var str = 'abca';

var re = /(a)(b)(c)\2/;

alert( re.test(str) )

下面写法的区别

var re = /\w\w/;  //c9
var re = /(\w)\1/; //cc 99

例子: 找重复项最多的字符和个数

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);

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/chiwbttx.html