博客
关于我
正则表达式
阅读量:338 次
发布时间:2019-03-04

本文共 2298 字,大约阅读时间需要 7 分钟。

正则表达式

  • 正则表达式: 是对字符串操作的一种逻辑公式, 就是用事先定义好的一些特殊字符以及这些特殊字符的组合,组成一个’规则字符串’, 这个字符串用来表达对字符串的一个过滤的逻辑. 简单来说就是规定文本检索的内容, 通常用来检索, 替换文本.
  • 正则表达式的创建:
    • 构造函数创建: new RegExp('检索字符', '修饰符');
    • 字面量创建: /检索字符/修饰符
var reg1 = new RegExp('abc');console.log(reg1); // /abc/console.log(typeof reg1); // objectvar reg2 = /abc/;console.log(reg2); // /abc/console.log(typeof reg2); // objectconsole.log(reg1 == reg2); // false
  • 修饰符: g: global 全局匹配 i: ignore case 不区分大小写
// g:global 全局匹配var str = 'hello java, hello web, hello world';var reg1 = /hello/;var reg2 = /hello/g;console.log(str.replace('hello', '你好')); // 你好 java, hello web, hello worldconsole.log(str.replace(reg1, '你好')); // 你好 java, hello web, hello worldconsole.log(str.replace(reg2, '你好')); // 你好 java, 你好 web, 你好 world// i: ignore case  不区分大小写var str = 'Hello World';var reg1 = /hello/;var reg2 = /hello/i;console.log(str.replace(reg1, '你好')); // Hello Worldconsole.log(str.replace(reg2, '你好')); // 你好 World
  • 正则表达式的方法:
    • test: 检索字符串中是否含有符合正则表达式的内容, 返回值为Boolean.
    • exec: 检索字符串中符合正则表达式的内容, 返回值是数组, 如果检索不到返回null.
// - test: 检索字符串中是否含有符合正则表达式的内容, 返回值为Boolean.// - exec: 检索字符串中符合正则表达式的内容, 返回值是数组, 如果检索不到返回null.var str1 = 'abcd';var str2 = 'a1b2c1d';var reg = /abc/;console.log(reg.test(str1)); // trueconsole.log(reg.test(str2)); // falseconsole.log(reg.exec(str1)); // ["abc", index: 0, input: "abcd", groups: undefined]console.log(reg.exec(str2)); // null
  • 字符串的方法
    • replace(): 替换
    • split(): 切割
    • match(): 检索字符串, 效果exec一致
    • search(): 查找目标字符串,返回第一次出现的位置, 找不到返回-1
// replace(): 替换var str = 'hello web';var reg = /hello/;console.log(str.replace(reg, '你好'));// split(): 切割var str = 'web java ui';console.log(str.split(' '));console.log(str.split(/ /));var str = 'web    java       ui';console.log(str.split(' ')); // (12) ["web", "", "", "", "java", "", "", "", "", "", "", "ui"]console.log(str.split(/ /)); // (12) ["web", "", "", "", "java", "", "", "", "", "", "", "ui"]console.log(str.split(/\s+/)); // ["web", "java", "ui"]// match(): 检索字符串, 效果exec一致var str = 'abc';console.log(str.match('c')); // ["c", index: 2, input: "abc", groups: undefined]console.log(str.match(/c/)); // ["c", index: 2, input: "abc", groups: undefined]// search(): 查找目标字符串,返回第一次出现的位置, 找不到返回-1var str = 'abc';console.log(str.search('c')); // 2console.log(str.search(/c/)); // 2console.log(str.search(/x/)); // -1

转载地址:http://btse.baihongyu.com/

你可能感兴趣的文章
Markdown使用笔记
查看>>
「从零单排HBase 06」你必须知道的HBase最佳实践
查看>>
「从零单排canal 04」 启动模块deployer源码解析
查看>>
用ThreadLocal来优化下代码吧
查看>>
netcore中使用session
查看>>
Android 开发学习进程0.25 自定义控件
查看>>
多媒体文件格式全解说(下)--图片
查看>>
淘宝WAP版小BUG分析
查看>>
Java并发之ThreadPoolExecutor源码解析(三)
查看>>
TCP/IP网络编程之域名及网络地址
查看>>
Redis实现之对象(三)
查看>>
NodeJS+Express+MongoDB
查看>>
(四十四)c#Winform自定义控件-水波-HZHControls
查看>>
c#winform主题实现的一个方法
查看>>
asp.net打印网页后自动关闭网页【无需插件】
查看>>
一个人开发的html整站源码分享网站就这么上线了
查看>>
SQLServer 查看耗时较多的SQL语句(转)
查看>>
高并发场景下如何优化服务器的性能?
查看>>
数据结构与算法系列之目录
查看>>
【计算机网络】应用层
查看>>