【JavaScript】正则表达式的应用

news/2024/7/19 15:20:46 标签: 正则表达式, js

两种写法

    //var re = new RegExp('a') //js风格
    var re = /a/ //perl风格
    var str = 'abcdef'
    alert(str.search(re))

忽略大小写 i

var re = new RegExp('a', 'i') //js风格
var re = /b/i //perl风格

 实例:挑出字符串里的数字

    var str = '33 uu8798 i09 ij--879pp 99'
    alert(str.match(/\d+/g))

\d 是代表的是 数字; + 量词表示任意个数; g global,全部都找到。

replace

    var re = /a/g
    str = 'abcdabcda'
    alert(str.replace(re, '0'))

实例:敏感词过滤

<body>
    <input type="text" id="txt1">
    <input type="button" id="btn" value="过滤">
    <script>
        var oTxt = document.getElementById('txt1')
        var oBtn = document.getElementById('btn')
        oBtn.onclick = function(){
            var re = /日本|中国/g //过滤词不需要加引号
            oTxt.value = oTxt.value.replace(re, '***')
        }
    </script>
</body>

方括号 [ ]

表示或者

    var str = 'apc bpc cpc xpc gpc'
    var re = /[agp]pc/g //a或b或g
    alert(str.match(re)) //apc gpc 

表示范围

    var str = 'abc 57 defjh78 djj98 kks--098'
    var re = /[0-9]+/g //[0-9]相当于\d
    alert(str.match(re))

[a-z] 代表所有的字母 [0-9] 代表数字 [^0-9] 代表排除数字 [^0-9a-z] 代表排除字母和数字

实例:过滤html标签

<body>
    <textarea id="txt1" rows="20" cols="50"></textarea>
    <input type="button" value="过滤" id="btn">
    <script>
        var oBtn = document.getElementById('btn')
        var oTxt = document.getElementById('txt1')
        oBtn.onclick = function(){
            //var re = /<.+>/g //表示<>内有若干个任意字符
            var re = /<[^<>]+>/g //表示<>内有若干个除了<>的字符
            oTxt.value = oTxt.value.replace(re, '')
        }
    </script>
</body>

转义字符

. 表示任意字符

\d 表示数字相当于[0-9];       \w 表示 英文、数字、下划线相当于[a-z0-9_] ;  \s 表示空白字符例如空格、tab等不可打印的字符

\D 表示非数字相当于[^0-9]    \W表示非英文、数字、下划线相当于[^a-z0-9_] ; \S表示非空白字符

量词-个数

{n} 表示出现n次; \d{8} 8位数字  [1-9]\d{7} 第一位不为0的8位数字

{n,m}最少n,最多m;[1-9]\d{4,10} 5-11位且第一位不为0的数字

{n,}最少n,不限;

+ 若干个相当于{1,};

? {0,1}表示可以有可以无 (0\d{2,3}-)?[1-9]\d{7}(-\d{1,3})? 固话校验

*{0,}表示可以没有

实例:邮箱格式校验

    <input type="text" id="txt">
    <input type="button" id="btn" value="校验">
    <script>
        window.onload = function()
        {
            var oTxt = document.getElementById('txt')
            var oBtn = document.getElementById('btn')
            oBtn.onclick = function(){
                var re = /^\w+@[0-9a-z]+.[a-z]+$/g //^ $ 行首行尾
                if(re.test(oTxt.value)){
                    alert('符合邮箱格式')
                }else{
                    alert('不符合邮箱格式')
                }
            }
        }
    </script>

 


http://www.niftyadmin.cn/n/497365.html

相关文章

再啃 javascript 高级程序

第二章&#xff1a; 1、为了避免页面出现延迟时的空白&#xff0c;把js放在body元素中页面内容的后面。 2、延迟脚步的方法&#xff1a; &#xff08;1&#xff09;defer&#xff08;2&#xff09;async &#xff08;3&#xff09;动态创建<script>标签&#xff08;4&…

Win10环境下Vmare12(虚拟机)安装Mac OS X Yosemite 10.10

最近电脑突然感染了百度全家桶&#xff0c;搞得一开机资源管理器就崩溃&#xff0c;一怒之下重装了系统&#xff0c;把之前用了三年的win 7系统换成了最近刚出的windows 10。刚好电脑之前内存加到了32G了&#xff0c;平时用的也不厉害&#xff0c;索性就在新系统上弄了虚拟机。…

使用补丁修改DSDT/SSDT [DSDT/SSDT综合教程]

请尊重原贴作者 与 本贴楼主。原作者把自己丰富的经验分享给了大家&#xff0c;本贴作者每个贴子平均花了3个小时翻译。所以&#xff0c;转载请注明出处&#xff1a;原贴地址&#xff1a;http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt…

【ES6】变量 let 以及 const

var的缺点 1、可以重复声明 var a 12var a 5alert(a) //5 2、无法限制修改&#xff08;没有常量&#xff09; var a 12a 5alert(a) //5 3、没有块级作用域 if(true){var a 5}alert(a) //5 不可重复声明 let、const Identifier a has already been declared let a 5l…

FLASH AS3.0 鼠标拖动技术 startDrag();stopDrag();

mc:MovieClipmc添加两个鼠标事件&#xff1a;鼠标按下时 可以拖动&#xff1b;鼠标松开 停止拖动&#xff1b;mc.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDownHandler);mc.addEventListener(MouseEvent.MOUSE_UP,onMouseUpHandler);private function onMouseDownHandle…

【ES6】箭头函数的基本用法

箭头函数 箭头函数和原来相比&#xff0c;只是写法上的改进&#xff1a; 1、如果只有一个参数&#xff0c;&#xff08;&#xff09;可以省 2、如果只有一个 return&#xff0c;{ } 可以省 function show(){}let show () >{} 实例1、省略( ) 和 { } let show function(a){…

IO---Java 文件复制

利用FileInputStream及FileOutputStream实现文件的复制操作。 FileOutStream outnew FileOutStream(outfile); 如果存在outfile则重构&#xff0c;如果不存在outfile则创建。 FileOutStream outnew FileOutStream(outfile&#xff0c;ture); append ture or flase 如果存在out…