javascript - 正则表达式允许一些特殊字符但不允许在 javascript 中使用空格?
问题描述
我写了以下正则表达式来接受一个小写和一个大写字母、一个数字和一个特殊字符(!@#$%)。
/^(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%]).*$/
但上面的正则表达式也接受空格。如何在 javascript 中使用正则表达式限制空间。
解决方案
这里最简单的方法是匹配[^ ]*
而不是.*
在您的模式中:
/^(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%])[^ ]*$/
^^^ change here
如果“空格”实际上是指任何空白字符,请\S
改用:
/^(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%])\S*$/
编辑:
如果您想限制为仅使用字母数字(大写或小写)以及一组固定的符号,请使用以下模式:
/^(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%])[A-Za-z0-9!@#$%]*$/
推荐阅读
- sql - Angularjs 写入 Azure SQL 表
- ag-grid - 如何设置 ag-grid headerName 进行翻译
- matlab - 从图像中去除部分模糊
- r - 如何使用 apply 直接从函数的参数中命名元素列表
- elasticsearch - 从 mysql 错误导入数据 - 管道已终止
- dhcp - ISC dhcrelay 未将 DISCOVER 数据包转发到 dhcp 服务器
- python - Wordcloud-枕头问题
- asp.net-mvc - 我无法在服务器端接收 serializeEditData 的 postData
- python - 了解Python中multitaper方法的频率轴
- python - 为什么不能将long类型转换为int类型