标签:并且 字符 查找 模式 括号 一个 等价 lse match
简单实例来一个
匹配前面是数字并且以abc结尾的字符串(123abc)
// 正则表达式概念 // 正则表达式使用单个字符串来描述,匹配一系列符合某个句法规则的字符串搜索模式 // 用某种模式去匹配一类字符串的公式 // 语法 (构造正则) //方法1、 构造函数:var reg=new RegExp("正则表达式","修饰符"); reg--regular:规则 exp--expression:表达 //方法2、 var reg=/正则表达式/修饰符;(常用方法) pattern:典范、模式 modifiers:修饰语 // 修饰符 // i :执行对大小写不敏感的匹配 // g :执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) // m :执行多行匹配 // 例子 // 创建一个要检测的变量 var str="abc"; //26个英文字母 a-z // 创建一个正则 var regular=/[a-z]/; // 检测 方法1 console.log(regular.test(str));//true 返回值为true时,代表匹配 返回值为false时,代表不匹配 // 检测 方法2 console.log(regular.exec(str));// ["a",index:0,input:"abc"] // 次检测方法返回的是一个数组 // 数组的第一个元素:匹配的内容 // 数组的index元素:匹配内容的第一个字符串索引下标 // 数组的input元素:返回原始字符串 // 检测一个字符串是否与正则相匹配 返回的值为布尔值 // 方法1: reg.test(string); reg是创建的正则表达式 test:实验,测验 // 方法2: reg.exec(string); // 正则表达式的方法 // string类中支持正则的方法 /*search()方法-使用正则表达式来检索字符串中的kgc*/ /*match()方法-使用正则表达式来检索字符串中的所有数字*/ /*replace()方法-使用"kgc"替换字符串中的"huyang"*/ /*split()方法-把单词分隔为字母*/ /*验证26个英文字母组成的字符串*/ /*验证由数字和26个英文字母组成的字符串*/ // search()的用法 检索字符串中的字符 var str="hello kgc"; console.log(str.search(/kgc/));//6 代表此字符串的下标是6 console.log(str.search(/KGC/));//-1 代表不存在 console.log(str.search(/KGC/i));//6 加了i之后 i是修饰符,代表执行对大小写不敏感的匹配 // search();若找到 返回字符串的下标 若没找到返回-1 // match()的使用方法 检索字符串中的所有数字 var str="1 and 2 and 3"; console.log(str.match(/\d/));//["1",index:0,input:"1 and 2 and 3"] \d:代表数字 console.log(str.match(/\d/g));//["1","2","3"] 加了g只后, g是修饰符,代表执行全局匹配 console.log(str.match(/kgc/));//null 若不存在,返回null // 如果没有找到任何匹配的文本,返回null。否则,它将返回一个数组(依赖于是否具有全局标志g) // replace()的用法 用新字符串替换字符串中的字符产生一个新字符串 var str="hello huyang"; console.log(str.replace(/huyang/,"kgc"));//hello kgc var str="hello huyang,how are you?huyang"; console.log(str.replace(/huyang/g,"kgc"));//hello kgc,how are you?kgc // 返回一个新的字符串 // split()的使用方法 把单词分隔成字母 var str="hello"; console.log(str.split(""));//["h","e","l","l","o"] console.log(str.split("",3));//["h","e","l"] 3代表只要前3个字符 console.log(str.split(" "));//["hello"] console.log(str.split("1"));//["hello"] // 常用的表达式 // [a-z] :查找任何从小写a到小写z的字符 // [A-Z] :查找任何从大写A到大写Z的字符 // [0-9] :查找任何从0至9的数字 // [abc] :查找括号内的任意一个字符 abc:代表任何字符 // [^abc] :查找括号内的任意字符 // var reg=/^[a-zA-Z]$/ 这里的^ $ :代表从^开始 到$结束 // 常用的元字符(特殊字符) // \w :匹配数字、字母,下划线 等价于[a-zA-Z0-9] // \W :匹配非数字、字母、下划线 等价于[^a-zA-Z0-9] // \d :匹配数字 // \D :匹配非数字 // \s :匹配空白字符(空格、换行) // \S :匹配非空白字符 // \n :匹配换行符 // 常用的限定符 // * :匹配前面的子表达式零次或多次 // + :匹配前面的子表达式一次货多次 // ? :匹配前面的子表达式零次或一次 // {n} :匹配确定的n次 // {n,} :至少匹配n次 // {n,m} :最少匹配n次且最多匹配m次 // 练习 /*验证26个英文字母组成的字符串*/ var str="sdaAHSHsffsefsRFGDGDefgs"; var reg=/[a-zA-Z]/; var reg1=/^[a-zA-Z]$/; //从^开始$结束 只能匹配一次 所以返回false var reg2=/^[a-zA-Z]+$/; //+代表匹配一次或多次 console.log(reg.test(str));//true console.log(reg1.test(str));//false console.log(reg2.test(str));//true /*验证由数字和26个英文字母组成的字符串*/ var str="1232fdss3343r5rfdsf"; var reg=/^[a-zA-Z0-9]+$/; console.log(reg.test(str));//true /*验证由数字字母下划线组成的字符串*/ var str="123a_v_f"; var reg=/^\w+$/; // \w:匹配数字、字母、下划线 console.log(reg.test(str));//true /*验证汉字*/ var str="我是汉字"; var reg=/^[\u4e00-\u9fa5]+$/; console.log(reg.test(str));//true // [\u4e00-\u9fa5] 代表汉字 记忆方法:有事100,有酒罚我
自创一个匹配规则:
只要含有@符(@符号可以出现一次或多次)
var str = "12@3abc"; var patt1 = /@+/; console.log(patt1.test(str));
标签:并且 字符 查找 模式 括号 一个 等价 lse match
原文地址:https://www.cnblogs.com/fqh123/p/11407864.html