探究js正则匹配方法:match和exec】的更多相关文章

match是字符串方法,写法为:str.match(reg) exec是正则表达式方法,写法为:reg.exec(str) match和exec在匹配成功时返回的都是数组,在没有匹配上时返回的都是null,故在没有深入了解两者的使用规则前,会误以为两者的使用效果是一样的,下面在几种情况中对match和exec进行区分. 1.全局匹配: 当不使用全局匹配时,两者的匹配效果是一样的,仅返回第一次匹配成功的结果: var s = "aaa bbb ccc"; var reg = /\b\w+…
应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var formatText = ""; 4 var list = val.split('\n'); 5 if (list.length == 0) { 6 return val; 7 } 8 for (var i = 0; i < list.length; i++) { 9 format…
概述 在JS密码校验中常常会遇到密码强度的校验需求,借用一位朋友提问的图,他在工作中遇到的一个比较经典的密码强度校验要求: 这个需求有两个难点,一,是如何使用正则匹配所有半角英文标点符号,二,是如何验证密码段中在要求的四种(大写字母,小写字母,数字,标点符号)类型中至少存在三种. 首先,我们来解决第一个难点:如何使用正则匹配所有半角英文标点符号. 太长不看版: 满足需求:使用js正则匹配所有半角英文标点符号(不含大小写字母) 解决方案:使用正则表达式:/[\x21-\x2f\x3a-\x40\x…
https://blog.csdn.net/xushichang/article/details/4041507 //输入姓名的正则校验 e.currentTarget.value = e.currentTarget.value.replace(/[^\u4E00-\u9FA5+]/ig,'') //身份证正则校验 let reg = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8…
JS正则的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\s+)|(\s+$)","g"); //使用直接字面量创建 var regStr = /(^\s+)|(\s+$)/g; 其中 g 表示全文匹配,与之相关的还有 i 和m,i 表示匹配时忽略大小写,m 表示多行匹配,如果多个条件同时使用时,则写成:gmi 二.().[].{} 的区别 () 的作用是提取匹配的字…
这里我第一时间想到的就是用 js 的search 和 match ,其中最常见的是match: 1. str.search(regexp):search()方法不支持全局搜索,因为会忽略正则表达式参数的标识g,并且也忽略了regexp的lastIndex属性,总是从字符串的开始位置进行检索,所以它会总是返回str的第一个匹配的位置. var str = "Javascript"; str.search(/script/); // 返回 script 中s的位置为 4 str.searc…
如果直接在js中是可以直接取到hostname的,以下方式是通过正则匹配: var url = "http://www.cnblogs.com/cench" var reg = /^http(s)?:\/\/(.*?)\// // 必须是http开头或者https开头,结尾为'/' // 把host替换成指定数值 var ToReplace = 'Host/' url.replace(reg, ToReplace) // Host/cench //*******************…
今天写一个用js正则校验最多保留两位小数的格式. a = /^\d+|\d+\.\d{1,2}$/; 测试 a.test(1.222); 结果:true 一下蒙了,怎么可能,最后找了好久,原来需要把^和$中间的格式包起来 a = /^(\d+|\d+\.\d{1,2})$/; 测试a.test(1.222); 结果:false 分析:如果不用括号包起来,则匹配^\d+或\d+\.\d{1,2} 1.222一下就匹配了^\d,因为只要以数字开头就匹配嘛 最终从网上找到一个更好的匹配两位小数的正则:…
正则匹配去掉所有html标签 var a = "<span>999</span>" a = a.replace(/<[^>]+>/g,' ') console.log(a)…
JS的正则表达式 rge.test(str) 检验目标对象中是否包含匹配模式,并相应的返回true或false   rge.source str.search(rge) 将返回一个整数值,指明这个匹配距离字符串开始的偏移位置.如果没有找到匹配,则返回 -1 str.replace(re, function(){}) 替换匹配到的数值 rge.exec(str) 没有找到匹配,则它返回 null.如果它找到匹配,则 exec 方法返回一个数 str.match(rge) 用正则表达式模式在字符串中…