首页 > 代码库 > 正则表达式的基本

正则表达式的基本

今天给大家说一下正则:
正则全程正则表达式,也可以称为规则表达式。英文为: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:数字
\n:换行;
\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=http://www.mamicode.com/oTxt.value.replace(/D/,‘‘)"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=http://www.mamicode.com/oTxt1.value.replace(/^/mg,‘    ‘)"30" rows="10" id="txt1" name=""></textarea>
<input type="button" value="http://www.mamicode.com/整理" 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="http://www.mamicode.com/校检" 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="http://www.mamicode.com/校检" id="btn"/>
</body>

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

    <script>
       window.onload=function(){
           var oTxt=document.getElementById(‘txt‘);
           oTxt.oninput=function(){
               oTxt.value=http://www.mamicode.com/oTxt.value.replace(/D/,‘‘)"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>

  

 

正则表达式的基本