zoukankan      html  css  js  c++  java
  • 正则表达式的基本

    今天给大家说一下正则:
    正则全程正则表达式,也可以称为规则表达式。英文为:regular expression,简写为reg.

    而正则表达式就是和字符串打交道,制定的一系列的规则,这也是他的用法;
    特点:性能极高,方便。

    正则的写法:
    1.传一个参数
    var reg = new RegExp('要查找的字符串()');
    str.search(reg);
    找不到返回-1;从左往右找一次;区分大小写;
    2.传两个参数:
    new RegExp('要查找的字符串','g');
    这里面g代表着: global:全局,全部;

    正则的简写:
    var reg = //;

    一些方法:
    str.search(reg);搜索位置;
    str.match(reg);匹配对象;
    str.replace(reg,'要替换成的字符'),或者:str.replace(reg,function(s){ });
    reg.test(oTxt.value):检查oTxt.value是否符合需求,符合需求返回true,否则返回false;

    ||:或者;
    |:正则里面的或者;(正则较懒惰,多个或者的时候,只要有一个满足就弹true;)
    ^:行首;放到[]里面就代表排除;
    $:行尾;

    一些简写:
    i:ignore:忽略
    g:global:全局
    m:multi-line:多行

    关于转义:
    d:digital:数字
    :换行;
    s:space:空格;
    w:word:单词;
    D:非数字;
    W:非单词;
    S:非空格;
    . :任意东西;

    关于[]:
    [abc]-->a|b|c;
    [1-39]-->1到3,或者9
    [a-z]--->a-z 26个小写字母;
    [A-Z]--->A-Z 26个大写字母;
    [0-9]--->0-9的数字--->d;
    [^0-9]--->非数字;--->D
    [^a-z]--->非小写字母;
    [^A-Z]---->非大写字母;

    量词:{}
    ?--->{0,1},可以没有,有最多就只有一个。
    {n}:正好n个;/d{3}/:正好3个数字;
    {n,m}最少n个,最多到m个;
    {1,}最少1个,最多不限;---> +;
    {0,}可以没有,有的话也不限制个数;----> *;
    /ab+/--->abbbbbb;
    /(ab)+/--->abababab;
    +:n多个;
    下面分享几个有关正则的实例:
    1.校检年龄.html
        <script>
           window.onload=function(){
               var oTxt=document.getElementById('txt');
               oTxt.oninput=function(){
                   oTxt.value=oTxt.value.replace(/D/,'')
               }
           }
        </script>
    </head>
    <body>
    <input type="text" name="" id="txt"/>
    </body>
    2.整理格式.html
        <script>
            window.onload=function(){
                var oTxt1=document.getElementById('txt1');
                var oTxt2=document.getElementById('txt2');
                var oBtn=document.getElementById('btn');
                oBtn.onclick=function(){
                    //oTxt2.value=oTxt1.value.replace(/^/mg,'    ')
                    oTxt2.value=oTxt1.value.replace(/$/mg,'qwer')
                }
            }
        </script>
    </head>
    <body>
    <textarea cols="30" rows="10" id="txt1" name=""></textarea>
    <input type="button" value="整理" id="btn"/>
    <textarea cols="30" rows="10" id="txt2" name=""></textarea>
    </body>
    3.校检汉字.html
        <script>
            window.onload=function(){
                var oTxt=document.getElementById('txt');
                var oBtn=document.getElementById('btn');
                var reg=/^[u4e00-u9fa5]{2,6}$/;
                oBtn.onclick=function(){
                    alert(reg.test(oTxt.value))
                }
                //var reg=/[^u4e00-u9fa5]{2,6}$/***汉字的区间;
            }
        </script>
    </head>
    <body>
    <input type="text" name="" id="txt"/>
    <input type="button" name="" value="校检" id="btn"/>
    </body>
    
    4.检测座机号码.html
        <script>
            window.onload= function () {
                var oTxt=document.getElementById('txt');
                var oBtn=document.getElementById('btn');
                var reg=/^(0[1-9]d{1,2}-)?[1-9]d{6,7}$/;
                oBtn.onclick=function(){
                    alert(reg.test(oTxt.value))
                }
            }
        </script>
    </head>
    <body>
    <input type="text" name="" id="txt"/>
    <input type="button" name="" value="校检" id="btn"/>
    </body>
    

    5.输入框只能输入数字.html

        <script>
           window.onload=function(){
               var oTxt=document.getElementById('txt');
               oTxt.oninput=function(){
                   oTxt.value=oTxt.value.replace(/D/,'')
               }
           }
        </script>
    </head>
    <body>
    <input type="text" name="" id="txt"/>
    </body>
    

    6.过滤敏感词1.html

    <script>
        var str='我会在你身边你左右 绝不会回头 ,你的一举一动 像心跳 牵动我所有 我会在你生变你左右 绝不会放手 无论昨天今天和以后 一直到尽头 等着我 一定回来 做过了人来人往清风徐来 水波不兴 一次就好我带你去看天荒地老 在阳光灿烂的日子里开怀大笑 我不会走 想起那些每天每天每日每夜的守候  大王叫我巡山 大王叫我来巡山 我把车子开上五环 啊 五环 你死四环多一环 啊  五环 你比六环少一环 终于有一天  你会修到七环  修到七环咋么办  你比五环多两环 when i see you again  see you  again  when i see you again 有些难以启齿的柔弱  只能自己慢慢把握 有时候也偷偷掉眼泪  有时候也会默默认真 想过自己也会有可能 如果上天安排 在爱恨的季节里迷惑 忽然又太多的话 有些难以启齿的柔弱的柔弱 忽然间有一天 你不在我听我诉说 '
        var reg=/你|太多|一|每天每日每夜|人来人往/g;
        document.write(str.replace(reg,function(s){
            var tmp='';
            for(var i=0;i< s.length;i++){
                tmp+='*';
            }
            return '<span style="color:orangered;">'+tmp+'</span>'
        }))
    </script>
    7.首字母大写.html
    <script>
            window.onload=function(){
                var str='come on baby';
                document.write(str.replace(/w+/g,function(s){
                   return s.charAt(0).toUpperCase()+ s.substring(1);
                }))
            }
        </script>
    

      

     
  • 相关阅读:
    表:t_category
    使用 Javascript 代码,增加 HTML 新元素(节点)
    Kind Editor 笔记
    [ 摘 ] 对 js 运算符 “||” 和 “&&” 的总结
    Oracle 的分页查询,myBatis 配置文件
    ExtJS 的工具条及菜单
    发一个 ExtJS 4.2.0 的页面源码(规则比对公式 的设置页面)
    MyBatis 中的 set 元素用法(MyBatis 3.1.1)
    MySQL 存储过程,一个 4 层的游标,用于规则比对,不知道性能如何。
    jmeter从文件中读取参数
  • 原文地址:https://www.cnblogs.com/lianzhibin/p/6052815.html
Copyright © 2011-2022 走看看