博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式(一个业余维护的库)欢迎指正
阅读量:6656 次
发布时间:2019-06-25

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

正则表达式

一个简单灵活的正则表达式生成库,欢迎 ??fork

参数

strictStart

设置开头校验 (不能和全局查找 isglobal 同用) 类型:boolean 默认:false

strictEnding

设置持续到结尾匹配 (不能和全局查找 isglobal 同用) 类型:boolean 默认:false

isglobal

设置全局查找 类型:boolean 默认:false

注:正则表达式对象具有修饰符 g 时,它将把当前正则表达式对象的 lastIndex 属性设置为紧挨着匹配子串的字符位置,当同一个正则表达式第二次调用时,它会将从 lastIndex 属性所指示的字符串处开始检索,如果没有发现任何匹配结果,它会将 lastIndex 重置为 0。

isignore

设置是否区分大小 类型:boolean 默认:false

children

设置匹配参数条件 类型:array 必填:true

子级

number

设置数字 类型:boolean 默认:false

capitalCode

设置小写字母 类型:boolean 默认:false

lowercaseCode

设置大写字母 类型:boolean 默认:false

matchingChinese

设置中文 类型:boolean 默认:false

customCharacter

设置自定义匹配参数

类型:array 默认:空

注:() 括号中的内容可以单独成为一个整体;括号中的内容可以进行分组,单独匹配如果不需要(?:)。[] 方括号中的单独匹配,不可分组,传参的长度大于等于 2 并且非特殊符号(如:‘//n’)匹配用()单个字符用[]

注:水平制表符(\t),垂直制表符(\v),换行符(\n),回车符(\r),换页符(\f)仅对单个字符有效,new RegExp 的时候\w ,\.这样的要用两个反斜杠,即\w, \. 因为字符串里反斜杠是转义字符,\w 会变成 w。因此传时必须双反斜杠即['\\w', '\\.'] 方可匹配字符

singleMatch

设置 是否需要单独匹配(自定义的值有多个字符有效) 类型:boolean 默认: false

isReversal

设置匹配值取反 类型:boolean 默认:false

qualifier

限定符 (指定出现数量的代码) 类型: objecct | string (?、+、 *) 默认:空

qualifier:{        minCount:0,        maxCount:7    }复制代码

minCount

设置最小出现次数 类型:number 默认:0

maxCount

设置最大出现次数 类型:number 默认:空

greedyLazy

是否是懒惰模式, 默认是贪婪模式 类型:boolean 默认:false

用法

let obj = {    strictStart: true,    strictEnding: true,    children: [        {            customCharacter: [1]        },        {            customCharacter: [3, 5, 7, 8, 9]        },        {            number: true,            minCount: 9        }    ]};let regPhone = Calves.init(obj);let testPhone = '13838624806';console.log(regPhone.test(testPhone));复制代码

快捷方式

  1. Number:数字
  2. Chinese:中文
  3. IDCard: 身份证号
  4. Letter:字母
  5. LetterNumber: 字母数字
  6. LowerCaseEnglish:小写英文
  7. CapitalEnglish: 大写英文
  8. Phone:匹配手机号
  9. Email:Email,
  10. Month: 月份
  11. Days: 日

快捷用法

let quick = Calves.quick('Number');let quickOk = '12';let quickError = 'hello world';console.log(quick);console.log(quick.test(quickOk));console.log(quick.test(quickError));复制代码

fork 启动项目

测试

//进入到项目中下载依赖npm inatall or yarn install测试项目npm run test复制代码

文件结构

+-- coverage // 生成测试覆盖率报告+-- image // 静态资源图片+-- node_modules|   +-- ...依赖包+-- script //文件| +-- index.js+-- test //项目测试用例|   +-- index.test.js  //测试用例+-- index.html //项目预览+-- package.json //依赖+-- README.md  //说明文档+-- .babelrc   //babel 配置复制代码

测试覆盖率

,欢迎指正!

转载于:https://juejin.im/post/5c8ba31ee51d4547d526aae9

你可能感兴趣的文章
java简单实现搜索指定后缀文件
查看>>
1738 - TWO NODES
查看>>
2019年华南理工校赛(春季赛)--I--炒股(简单思维水题)
查看>>
夜间模式的开启与关闭,父模板的制作
查看>>
Introductory Papers / Reference
查看>>
第一次,触碰Web App项目,栽过的那些坑。
查看>>
CentOS的新变化
查看>>
2013应届毕业生“大唐电信”校招应聘总结
查看>>
mysql 视图,触发器,存储
查看>>
SSE(Server-sent events)技术在web端消息推送和实时聊天中的使用
查看>>
mysql也有complex view merging 这个特性(5.6 , 5.7)
查看>>
使用Kindeditor上传图片
查看>>
关于pycharm中缩进、粘贴复制等文本编辑功能部分失效的解决办法
查看>>
SQLALchemy之ORM操作
查看>>
JDBC
查看>>
Git Tutorial 4 - Goto Remote Repository
查看>>
cmd常用命令符
查看>>
响应式网页设计基础
查看>>
BestCoder Round #71 (div.2)
查看>>
找规律/数位DP HDOJ 4722 Good Numbers
查看>>