请教一个js正则问题


^((?!xfb).)*$ 匹配不以xfb开始


 ^(?![^a-zA-Z]+$)(?!\D+$).{6,}$      匹配 数字和字母组合的

| 分枝。 匹配分枝条件时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。

要是把 ^(?![^a-zA-Z]+$)(?!\D+$).{6,}$|^((?!xfb).)*$ 匹配规则就失效了?

我想得到的是 不以xfb开始的 数字与字母的组合。

正则表达式 javascript正则 JavaScript

Alois.D 10 years, 7 months ago

| ,不是

所以 ^([a-z0-9])+$|^((?!xfb).)*$ 代表不以xfb开始的 或者 数字与小写字母的组合

只有既以xfb开头,又包含非数字与小写字母,如 xfbAabc123 才是无法match的

但是 xfbabc123 或者 Aabc123 都是可以match的

平淡的阳光 answered 10 years, 7 months ago


 ^((?!xfb)[a-zA-Z0-9]+)$

这样是不是就可以?匹配不以 xfb 开头的任意字母与数字组合...

必须包含 数字 和 字母 的...现学的,写的不好...


 /^((?!xfb)(([a-zA-Z]+)(?=\d)(\d+)([a-zA-Z0-9]{0,}))|(([0-9]+)(?=[a-zA-Z])([a-zA-Z]+)([a-zA-Z0-9]{0,})))$/g

// 忽略大小写版本
/^((?!xfb)(([a-z]+)(?=\d)(\d+)([a-z0-9]{0,}))|(([0-9]+)(?=[a-z])([a-z]+)([a-z0-9]{0,})))$/gi

(?!xfb)
不匹配以 xfb 开头的字符串
([a-zA-Z]+)(?=\d)(\d+)([a-zA-Z0-9]{0,}))
以字母开头但是字符串间要包括数字
(([0-9]+)(?=[a-zA-Z])([a-zA-Z]+)([a-zA-Z0-9]{0,}))
以数字开头但是字符串间要包括字母

202020 answered 10 years, 7 months ago

Your Answer