当前位置: 首页 > news >正文

自己电脑做服务器搭建网站建材外贸网站建设

自己电脑做服务器搭建网站,建材外贸网站建设,十大品牌网官网,资源创建正则表达式 1.使用new来创建 var exp new RegExp(box , gi );g 全局匹配 i 忽略大小写 m 多行匹配2.使用字面量 var exp /box/gi; 直接用2个 / ; 在俩个斜杠后加上模式修饰符#xff1b; 俩种创建方式比较: 1.使用字面量方式创建用的更加广泛; 2.当要匹配的内容是变量时,… 创建正则表达式 1.使用new来创建 var exp new RegExp(box , gi );g 全局匹配 i 忽略大小写 m 多行匹配2.使用字面量 var exp /box/gi;    直接用2个 / ; 在俩个斜杠后加上模式修饰符 俩种创建方式比较: 1.使用字面量方式创建用的更加广泛; 2.当要匹配的内容是变量时,只能使用new来创建. 正则表达式的测试 1.test( ) 正则表达式对象.test(字符串) 参数要匹配的字符串 返回值匹配成功返回true失败返回false 例1: var exp /Box/i; var str box ; alert(exp.test(str));true 忽略大小写 例2: var exp /abc/g; var str abcab; var res exp.test(str); console.log(res); console.log(exp.test(str)); console.log(exp.test(str));true //从第一个开始匹配,匹配到了abc 返回true; false //由于开启了全局匹配,所以从上次匹配之后的位置开始匹配(也就是从第二个a开始); 若没有g 则每次都会从头开始匹配true //由于上次匹配是false并且已经将字符串str查找完了,所以又从头开始匹配    注: ​ 开启了全局匹配g后,正则表达式内部有一个lastIndex的属性,用以记录下次开始查找的下标,保证其每次从lastIndex的位置开始查找 例3: var exp /abc/g; //同一正则表达式匹配不同字符串 var str1 abc; var str2 abcab; console.log(exp.test(str1)); console.log(exp.test(str2));true; //从str1的0位开始匹配,匹配到了abc,返回true, 此时lastIndex为3false; //从str2中lastIndex的位置开始匹配,也就是从第二个a开始例4: var exp1 /abc/g; //不同正则表达式匹配同一字符串 var exp2 /abc/g; var str abc; console.log(exp1.test(str)); console.log(exp2.test(str));true; //从str1的0位开始匹配,匹配到了abc,返回truetrue; //从str1的0位开始匹配,返回true2.exec( ) exec(字符串)该方法为专门为捕获组而设计的 参数要匹配的字符串 返回值返回的是一个数组。如果不匹配则返回null 关于返回值数组的说明 它确实是Array的实例。 但是这个数组有两个额外的属性index和 input index表示匹配的字符串在源字符串中的索引 input表示匹配的源字符串。 数组的第一项是与整个模式匹配的字符串其他项是与模式中捕获组匹配的字符串 如果没有捕获组则数组中只有第一项。关于捕获组的概念以后再说 例1:var exp /abc/gi;var str aaabcccdabcAbcAdaBc;var strNew ;while (strNewexp.exec(str)){ //使用while循环,将所有匹配到字符串输出来console.log(strNew[0]) //由于返回的是一个带有很多属性的数组,所以我们只要数组中的字符串,也就是索引为0.}正则表达式的规则 字符类:单个字母数字下划线 . //匹配除换行符外的任意字符(当点放在[]中是没有特殊意义) var exp /\d/g; // [0-9] var exp /\D/g; //[^0-9] var exp /\w/g; //[a-zA-Z0-9_]; var exp /\W/g; //[^a-zA-Z0-9_];字符类:空白字符 \0 匹配null 字符 \b 匹配退格字符 \n 匹配换行符 \r 匹配回车字符 \t 匹配制表符 \s 匹配空白字符、空格、制表符和换行符 \S 匹配非空白字符单词边界 \b 示例 /\bcat\b/ 匹配到cat这个单词/B 非单词边界元字符/元符号 匹配情况 ^ 行首匹配 $ 行尾匹配字符类重复字符 元字符/元符号 匹配情况 ? 例如x? 匹配0个或1 个x * 例如x* 匹配0个或任意多个x例如x 匹配至少一个x (xyz) 匹配至少一个(xyz) {m,n} 例如x{m,n} n次数m 匹配最少m个、最多n个x {n} 匹配前一项n次 {n,} 匹配前一项n次或者多次1.[ ] 匹配[ ]内的任意一个字符 var exp /[abc]/gi; // []内代表匹配其中的一个字符: a 或 b 或 c var exp /[a-zA-Z0-9_$]/g; //匹配26个大小写字母,0-9数字,下划线_ 美元符$ 中的任意一个; var exp /[^a-zA-Z]/g //匹配任意不在括号中的字符集中的字符; [ ]也可以配合? * {} 来使用; 如[a-z] 匹配至少一个[a-z]范围内的任意一个;2. ^ 俩种用法: 1.放在[ ] 内 表示非 var exp /[^a-zA-Z]/g //匹配任意不在括号中的字符集中的字符;2.放在[ ] 外,表示行首匹配 var exp /^\d/g; //规定行首必须是数字 var str 123qq; console.log(exp.test(str)); //行首为数字1,返回true; console.log(exp.lastIndex); //此时lastIndex 为1 console.log(exp.test(str)); //从下标为1的位置开始匹配,虽然下标为1的位置是数字,但却不是行首,返回false;3. $ 表示行尾匹配,用法与^ 相近 ^ 和 $ 合用 var exp /^\d\d$/g; //规定行首和行尾必须是数字 var str 12; var str2 123;console.log(exp.test(str)); // trueconsole.log(exp.lastIndex); // 2console.log(exp.test(str)); //falseconsole.log(exp.lastIndex); //0console.log(exp.test(str)); //trueconsole.log(exp.test(str2)); //false //exp中规定了行首行尾为数字,中间无内容4. . 匹配除换行符外的任意字符(当点放在[ ]中是没有特殊意义) var exp /./g; var str a; console.log(exp.test(str));true若想匹配它本身. var exp /\./g;5. | 择一匹配(管道符号) 表示或 var exp /a|b/g; var str a; console.log(exp.test(str));true数量词的匹配:默认都是贪婪匹配 6. ? 匹配0个或者1个 7. * 匹配0个或者多个 var exp /a*/g; var str aaaaa;console.log(exp.test(str)); //trueconsole.log(exp.test(str)); //true8. 匹配1个或多个 var exp /a/g; var str aaaaa;console.log(exp.test(str)); //trueconsole.log(exp.test(str)); //false9. {n} 匹配n个,只能是n个 10. {n,} 匹配至少n个 11. {n,m} 匹配至少n个,最多m个 基本的正则表达式验证 写一个正在表达式,判断手机号是否合法 var exp /1[34578]\d{9}$/g; var str 13979318939;console.log(exp.test(str));true 写一个正在表达式,判断邮箱是否合法 var exp /^\w{3,15}[\w-]\.(com|cn|net|org|edu|com\.cn)$/gi; var str 133_dcn.com.cn;console.log(exp.exec(str)[0]);133_dcn.com.cn 写一个正则表达式,判断图片的地址是否合法 var exp /^(http|https):\/\/.\.(jpg|jpeg|gif|png)$/gi; var str http://3323498dsfledf.png;console.log(exp.exec(str)[0]);http://3323498dsfledf.png 写一个正则表达式,爬取一堆字符串中的所有图片地址 var exp /http:\/\/[^:]\.(jpg|jpeg|gif|png)/gi; 写一个正则表达式,将字符串中的重复去掉 var exp /(.)\1/gi; var str aabbccdd; console.log(str.replace(exp,$1));abc分组 其中分组体现在所有以(和)元字符所包含的正则表达式被分为一组每一个分组都是一个子表达式它也是构成高级正则表达式的基础。如果只是使用简单的(regex)匹配语法本质上和不分组是一样的如果要发挥它强大的作用往往要结合回溯引用的方式。var str 123-mm; var strReg str.replace(/(\d)-([A-Za-z])/g,$2); console.log(strReg)//mm 上面那段$2这个就是表示正则第二组个匹配到的内容方法 1.search( ) str.search(exp);检索与正则表达式相匹配的第一个匹配项的索引。返回值: 索引 ,没有返回-1;注:search( )不支持全局,每次调用总是从0开始查找.加不加g都一样 2.match( ) str.match(exp);把满足正则表达式的所有字符串一起返回返回值: 数组 ,没有返回null;var str abc134ABC244co9;console.log(str.match(/\d/gi)); //获取str中的所有数字的数组[134,244,9]注:如果想获取所有的满足的,应该使用全局g,使用全局的时候,分组的信息则拿不到 3.replace( ) str.replace(exp,newStr);将正则表达式替换返回值: 替换之后的字符串var str 123aaa244;console.log(str.replace(/\d/gi,)); //将str中的数字全部去掉aaa 写一个正则表达式,将字符串中的重复去掉 var exp /(.)\1/gi; var str aabbccdd; console.log(str.replace(exp,$1));abc 4.split( ) str.split(exp,length);length:可选参,切出来的数组的最大长度使用split 拆分成字符串数组返回替换之后的字符串var str 102dsfe00dfefsf55; var exp /\D/gi; //用所有非数字来切割console.log(str.split(exp)); [102,00,55]https://www.cnblogs.com/moqing/archive/2016/07/13/5665126.html     /*** description:万能判断* param {type}* value/判断的焦点* type: 1/false(默认undefind也是false) 2/与焦点比对类型(小写)* return:1/焦点类型(小写) 2/boolean*/ function checkType(value, type) {const prototypeString Object.prototype.toString.call(value)const typeString prototypeString.replace(/\S*\s|]/gi, ).toLowerCase()return type ? type typeString : typeString } export default checkType匹配出现a或者b组合一起至少3次以上/(a|b){3,}/,匹配aaa,bbb,aab,baa,bba,bab等等正则表达式------捕获性分组非捕获性分组前瞻后瞻捕获性分组 javascript中捕获性分组是以小括号()来实现捕获性分组工作模式()会把每个分组里匹配的值保存起来。比如利用捕获性分组把 hello world 互换成 world hello方法一通过exec函数var str hello world; //首先创建好字符串 var pattern /([a-z])\s([a-z])/; //先通过正则匹配这个字符串用分组模式来获取这两个单词 var arr pattern.exec(str); // exec方法返回的是一个数组包含匹配到的字符串以及分组(也称子串)里的值console.log(arr); //[hello world,hello,world] console.log(arr[0]); //hello world 匹配到的字符串 console.log(arr[1]); //hello 第一个分组([a-z])的值 console.log(arr[2]); //world 第二个分组([a-z])的值//这时候两个分组的值都得到了,接下来用字符串拼接法实现互换 var n_str arr[2] arr[1]; console.log(n_str) //world hello方法二通过属性$1-9var str hello world; var pattern /([a-z])\s([a-z])/; pattern.test(str); //这个地方必须运行正则匹配一次方式不限可以是test()、exec()、以及String的正则方式console.log(RegExp.$1) //hello 第一个分组([a-z])的值 console.log(RegExp.$2) //world 第二个分组([a-z])的值var n_str RegExp.$2 RegExp.$1; console.log(n_str) //world hello方法三通过String的replace()var str hello world; var pattern /([a-z])\s([a-z])/; var n_str str.replace(pattern,$2 $1); //这里的$1、$2与方法二里的RegExp.$1、RegExp.$2作用是相同的。 console.log(n_str) //world hello非捕获性分组(?:) 非捕获性分组工作模式下分组(?:)会作为匹配校验并出现在匹配结果字符里面但不作为子匹配返回。比如利用非捕获性分组获取字符串000aaa111而且只返回一个值为aaa111的数组//先看用捕获性分组匹配会返回什么 var str1 000aaa111; var pattern /([a-z])(\d)/; //捕获性分组匹配 var arr pattern.exec(str1); console.log(arr) //[aaa111,aaa,111] 结果子串也获取到了这并不是我们想要的结果//非捕获性分组 var str2 000aaa111; var pattern2 /(?:[a-z])(?:\d)/; //非捕获性分组匹配 var arr2 pattern.exec(str2); console.log(arr2) //[aaa111] 结果正确 前瞻(?)和(?!) 前瞻分为正向前瞻和反(负)向前瞻正向前瞻(?表达式)表示后面要有什么反向前瞻(?!表达式)表示后面不能有什么。前瞻分组会作为匹配校验但不出现在匹配结果字符里面而且不作为子匹配返回。正向前瞻匹配一批图片格式 //正向前瞻匹配.jpg后缀文件名 var str 123.jpg,456.gif,abc.jpg; var partern /\w(?\.jpg)/g; //正向前瞻匹配 console.log(str.match(partern)); //[123, abc] 返回结果正确没有匹配456.gif反向前瞻匹配一批字母加数字 //反向前瞻匹配3个及以上的a而且后面不能有000的字符 var str aaa000 aaaa111 aaaaaaa222; var partern /a{3,}(?!000)/g; //反向前瞻匹配 console.log(str.match(partern)); //[aaaa, aaaaaaa] 返回结果正确没有匹配aaa000前瞻,可以放在位置不固定可前匹配和后匹配如/(?.jpg)\w/g;后顾(?)和(?!) —JavaScript不支持 后顾分为正向后顾和反(负)向后顾正向后顾(?表达式)表示前面要有什么反向后顾(?!表达式)表示前面不能有什么。 /正向后顾 (?abc) //前面需要有abc//反向后顾 (?!abc) //前面不能有abc名词解释:前瞻 先行断言 (?) 正向前瞻 正向零宽先行断言 (?!) 反向前瞻 负向前瞻 负向零宽先行断言后顾 后发断言 (?) 正向后顾 正向零宽后发断言 (?!) 反向后顾 负向后顾 负向零宽后发断言备注总结 可以通过多个前瞻组合一块控制字符串里边必须包含指定字符。 示例 (?.[0-9].)(?.[A-Z].)(?.[a-z].).{6,20} 可以匹配包含大写字母小写字母数字转载于:https://www.cnblogs.com/smzd/p/8798805.html
http://www.zqtcl.cn/news/844928/

相关文章:

  • 黄埔做网站江西省建设工程造价管理局网站
  • 适合网站开发的框架网盘视频直接做网站
  • wordpress菜谱网站网站服务公司
  • 跳转网站代码互联网平台构建怎么写
  • 服务器网站建设维护uemo网站源码
  • 浏览器如何做购物网站百度快照提交入口
  • 网站建设的主要步骤有哪些金华网站建设平台
  • 扁平化网站布局稷山网站制作
  • 做画找图网站包装策划与设计专业
  • 适合大学生做的兼职网站深圳企业名录大全
  • 电脑做网站用什么软件培训心得体会2000字
  • 手机网站开发公司哪家最专业html5商业网站开发北大青鸟
  • 做爰全过程教育网站建筑工程公司名字起名大全
  • 如何作做网站网站建设需要掌握什么技术
  • 广州网站建设推广公司做网站怎么合并单元格
  • 网站建设策划书的编制怎样建网站域名
  • 公司做网站的费用怎么记账网站源码html
  • 网站流量数据东莞松山湖华为招聘信息
  • 跨境电商一站式服务平台wordpress用旧的编辑器
  • 上海外贸网站推广方法爱站关键词
  • 网站页面框架设计企业建设流程
  • 网站做留言板如何推广小程序商城
  • 金融社区类网站建设鞍山58同城招聘网
  • 网站搭建策划书wordpress 屏蔽插件更新
  • 做网上购物网站杭州房产网官方网站
  • 汕头市网站建设分站公司站长网站大全
  • c2c的网站名称和网址深圳设计公司办公室
  • 建设银行企业版网站做微网站平台
  • 北京企业网站建设电话长沙建设工程信息网
  • 大型综合门户网站开发扁平化个人网站