“这是我参与8月更文挑战的第13天,活动详情查看: 8月更文挑战” juejin.cn/post/
6987962113788493831”
前言
“八月的色彩是用金子铸就的,明亮而珍贵;八月的色彩是用阳光酿造的,芬芳而灿烂。”
未来的日子,愿你吧自己调至最佳状态,缓缓努力,慢慢变好 Y(^o^)Y
最近在开发一个文档工具,在处理很多场景的时候大量的会用到正则表达式,正则表达式的使用,可以通过简单的办法来实现强大的功能,所以正则表达式支持的语言也有很多,比如:Java
、c++
、Python
等等。
为什么使用正则表达式?
通常我们在替换和搜索时,需要提供准确的文本,这样可以满足大部分的需求。但是,这样的方式就会缺少灵活性,如果使用这种方法搜索动态文本,虽然也可以做到,却会变得很困难。
我们看一个简单的例子:
文件名匹配 : /example.*\.js/
example.js
example11.js
example33.js
exampleMn.js
examplemm.js
复制代码
正则中的 .
和 *
都做了什么呢?下面我们就一一揭开它的神秘面纱。
语法
常见的字符
字符 | 描述 | 示例 |
---|---|---|
[A-Z] |
匹配所有大写字母 | |
[\s\S] |
匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行 |
|
. |
匹配除换行符(\n、\r) 之外的任何单个字符,相等于 [^\n\r] |
|
\w |
匹配字母、数字、下划线。等价于 [A-Za-z0-9_] |
|
\n |
匹配一个换行符 | |
^ |
匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,使用 \^ |
|
$ |
匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配 |
|
( ) |
标记一个子表达式的开始和结束位置 | |
* |
匹配前面的子表达式 0 次或多次 | |
+ |
匹配前面的子表达式 1 次或多次 | |
? |
匹配前面的子表达式 0 次或一次,或指明一个非贪婪限定符 | |
| |
指明两项之间的一个选择,相当于 或 | |
{n,m} |
m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次 |
常用的正则
验证数字
var reg = /^[0-9]*$/;<br>
var texts = "12132";<br>
if(reg.test(texts)){
console.log("验证数字");
}
复制代码
贴几个自己常用到的(拿来即用)
/^(\d+)(\.?)(\d{0,2})$/
输入整数或小数,保留2位小数/^[0-9.%]{1,}$/
输入百分数值/^1[34578]\d{9}$/
验证为手机号码/^(\/)[\/a-zA-Z0-9_-]+$/
以/开头的包含/
数字字母
_ -
/^[A-Za-z0-9]+$/
只能输入数字和字母/^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,}$/
至少6位密码 数字+字母,数字+特殊字符,字母+特殊字符,数字+字母+特殊字符组合,而且不能是纯数字,纯字母,纯特殊字符/^(?![\d]+$)(?![a-zA-Z]+$)(?![!#$%^&*]+$)[\da-zA-Z!#$%^&*]{6,}$/
// 限定特殊字符,例如,特殊字符的范围为!#$%^&*
/^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){0,})(?=(.*[\w]){1,})(?!.*\s).{14,}$/
不少于14位的包含大写字母、小写字母、符号/^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\w]){1,})(?!.*\s).{14,}$/
不少于14位的包含大写字母、小写字母、数字、符号/^[\s\S]*.*[^\s][\s\S]*$/
input 输入框不能为空字符- “^(?![a-zA-Z]+)(?![A-Z\W !@#)(?![a-z0-9]+)(?![a-z\W_!@#%^&
~()-+=]+$)(?![0-9\W_!@#$%^&*
~()-+=]+)[a-zA-Z0-9\W_!@#%^&`~()-+=]{3,30}$” 大写 小写 数字 字符 任意三种和三种以上组合 /\B(?=(\d{3})+(?!\d))/g
千分位格式化
结语
如果这篇文章帮到了你,欢迎点赞?和关注⭐️
文章如有错误之处,希望在评论区指正??。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END