如何匹配一个 不以xf 开始的 字母和数字 混合的 字符串?

发布于 2022-09-01 06:45:51 字数 140 浏览 13 评论 0

如何匹配一个 不以xf 开始的 字母和数字 混合的 字符串
^((?!xf).)*$ 匹配不以xf开始的

(^([a-z])+([a-z0-9])+$)|() 匹配 不能全为数字的

合起来,匹配就出现问题呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

友欢 2022-09-08 06:45:51
/^(?!xf)[a-z0-9]+/.test(args)

clipboard.png

骄傲 2022-09-08 06:45:51

不以XX开头,你需要的是零宽度负回顾后发断言

(?<!xf)

字母和数字混合,这个就比较常规了

[a-zA-Z0-9]+

合在一起应该就是你想要的

(?<!xf)[a-zA-Z0-9]+

但是分割线

JavaScript不支持这种高级货(我也是才知道),所以只能这样

!/^xf/.test(str) && /[a-zA-Z0-9]+/.test(str)
谁把谁当真 2022-09-08 06:45:51

不知道这个正则怎么样: // Update: 添加 x? 以匹配chuan "x"
(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^x?$)

一些测试:

/(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^x?$)/.test("")      // true
/(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^x?$)/.test("hello") // true
/(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^x?$)/.test("x") // true
/(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^x?$)/.test(" ")     // false
/(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^x?$)/.test("233")   // false
/(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^x?$)/.test("xf1s2") // false
/(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^x?$)/.test("xg122") // true
/(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^x?$)/.test("cf122") // true

解释如下:
(^[a-wy-z][a-z0-9]+$) 表示首字符为小写字母,且不是 x
(^x[a-eg-z0-9][a-z0-9]+$) 表示首字母为 x 且次位不是 f
(^$) 匹配空串。 (^x?$) 匹配空串或者串 "x"
如果需要忽略大小写,可以使用 /(^[a-wy-z][a-z0-9]+$)|(^x[a-eg-z0-9][a-z0-9]+$)|(^$)/i

其实你也可以

function isWanted (str) {
    return /^((?!xf).)*$/.test(str) && /(^([a-z])+([a-z0-9])+$)|(^$)/.test(str);
}

有用请支持哦

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文