正则表达式表示大写和小写+数字或其他非字母
Regex for upper and lower+numbers or other non-alphabetic
在这里查看我的帖子
正则表达式至少为 8 + 上下 + 数字或其他非字母顺序
假设我只需要下面的 2 个条件,正则表达式应该是什么?
- 包含大写和小写字母。
- 包含数字或其他非字母字符。
我试过^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z])$
但不起作用
但只是—— -
(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z])
正在工作
我可以只使用(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z])
来实现目的吗?
这里的问题是前/后看是零宽度,"非消耗"。这意味着您的
^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z])$
永远不会匹配,因为环顾四周什么都没有消耗,然后剩下什么? 只有^$
与空字符串匹配,但这不符合您的前瞻条件。
所以你应该使用
^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z]).*$
.*
将消耗一切,展望未来确保标准。
您还可以定义一个长度,将*
替换为 {x,}
其中 x 是字符串的最小字符数
^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z])$
这意味着:字符串的开头后跟任何包含小写或大写或非字母的内容,但下一个位置必须是字符串的结尾 - 这不可能发生。
您在上一个问题中接受的 aswer 没问题,有什么问题吗?在这里,您可以阅读有关正则表达式中断言的更多信息 http://cz.php.net/manual/en/regexp.reference.assertions.php
相关文章:
- 对象获胜'如果qml中的其他地方定义了数字动画属性,则t设置动画
- 在没有内置 Javascript 函数的情况下将基数 10 转换为其他基数 2 的数字
- 将数字舍入到小数点后两位,并删除任何其他小数点
- Reg Ex 不会验证我是否将 # 与其他字符或数字一起使用
- 通过jQuery替换数字,而不更改样式中的数字或其他所有内容
- 如何在其他重叠的数字范围之间找到可用的数字范围
- 从数组中获取数字并将此数字设置为其他函数的函数
- 提取以字母开头的字母数字单词,忽略其他单词
- 如何在JavaScript中检测CapsLock和其他非字母数字的特殊修饰键
- JSON解析将某个数字转换为其他数字
- JS缩小/闭包编译器将数字从基数10更改为其他数
- 试着遍历它.除了数字,其他的都加不起来
- 在Angular中,如何使用input type=text字段来只接受数字、负号和小数,别无其他
- JavaScript检查哪个给定的数字不同于其他的
- 如何替换$值而不替换任何其他数字
- 如何获得所有重音字母,数字但没有“;,;;”的标签以及其他标点符号
- 我使用的文本框只允许两个数字(即1-99).在输入文本框时,它应该限制除1-99以外的所有其他键
- 生成ID,基于哪个数字没有被用作其他评论的ID
- Javascript用8和9替换字符串不起作用,但其他数字可以
- Regex匹配年,但不匹配javascript中的其他数字