美文网首页
正则表达式

正则表达式

作者: Marshall_Yin | 来源:发表于2016-10-29 12:29 被阅读17次

一 为什么要用正则表达式?

以提取字符串中的数字为例.

如果用传统字符串操作,代码如下

// 传统字符串操作
    var str = '12,87 76 -ddf e dd 89 ff76 9';

    var arr = [];
    var tmp = '';
    var i = 0;

    for (i = 0;i<str.length;i++) {
        if (str.charAt(i)>='0' && str.charAt(i)<='9') {
            tmp += str.charAt(i);
        } else {
            if (tmp) {
                arr.push(tmp);
                tmp='';
            }
        }
    }

    if (tmp) {
            arr.push(tmp);
            tmp='';
    }

    alert(arr) // 12,87,76,89,76,9

而使用正则表达式,只需要下面这几句代码

// 正则表达式
var str = '12,87 76 -ddf e dd 89 ff76 9';
var re = /\d+/g;
alert(str.match(re)); // 12,87,76,89,76,9

二 正则表达式能做什么?
操作字符串.(也是它唯一能做的.)

三 正则表达式与字符串操作配合使用

var str = 'abcdef';
    var re = /a/; // 检测字符串里是否包含a
    var re = /a/i; // 检测字符串里是否包含a,并且忽略大小写,i代表ignore
    alert(re.test(str)); // true

    // 正则与search配合
    var  str = 'asdf 443 vczxv 55';
    var re = /\d/;  //  \d 在正则里就表示数字
    alert(str.search(re)); // 5 因为第一个数字出现在5这个位置

    // 正则与match配合
    var str = 'sdf e443 fedef 55 66gg dff 99';
    var re = /\d/;

    alert(str.match(re)); // 4 即只返回了第一个数字

    re = /\d/g; // g代表global,即找到全部的数字
    alert(str.match(re)); // 4,4,3,5,5,6,6,9,9 即返回了所有数字

    re = /\d\d/g; 
    alert(str.match(re)); // 44,55,66,99 因为有两个/d,所以计算机会两个两个的分割

    re = /\d+/g;  // \d+ 代表多个数字,任意长度
    alert(str.match(re)); // 443,55,66,99 

        // 正则与replace配合
    var str = 'abacdAef';
    alert(str.replace('a', 'T')); // Tbacdef 即只会替换掉第一个a
    alert(str.replace(/a/g, 'T')); // TbTcdAef 即替换了所有a
    alert(str.replace(/a/gi, 'T')); // TbTcdTef 即替换了所有a,且忽略大小写,注意:gi和ig都行,顺序无所谓

四 正则表达式常见应用---敏感词过滤

window.onload = function () {
        var txt1 = document.getElementById('txt1');
        var txt2 = document.getElementById('txt2');
        var btn = document.getElementById('btn1');

        btn.onclick = function() {
            var re = /我们|你们|他们/g;

            txt2.value = txt1.value.replace(re, '**');
        }
    }

效果如下,一点击过滤按钮,敏感词就被替换成**了.

敏感词过滤示例.png

相关文章

  • 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/rncyuttx.html