当前位置:  开发笔记 > 编程语言 > 正文

如何创建"逐步匹配"的正则表达式?

如何解决《如何创建"逐步匹配"的正则表达式?》经验,为你挑选了1个好方法。

我需要一个与用户输入字符串匹配的正则表达式.这有点难以解释,所以让我说明我的意思:

它应匹配此字符串:

"XXXX units",其中XXXX是任何数字.

但它也应匹配该字符串开头的任何子字符串,因此:

"123"
"123 u"
"123 uni"

也应该匹配.

但当然,这不应该匹配:

"123 xx"

看起来很简单,但我无法弄明白.这是我最接近的:

^\d+ ?u?n?i?t?s?

...但不幸的是,它也匹配像"123us"这样的字符串.

有人可以帮忙吗?这是javascript,所以我可能会因为缺少外观/前方功能而受到限制......



1> Kenney..:

只需添加一些():

/^\d+( (u(n(i(t(s)?)?)?)?)?)?$/

测试:

/^\d+( (u(n(i(t(s)?)?)?)?)?)?$/.test("123 units")  -> true
/^\d+( (u(n(i(t(s)?)?)?)?)?)?$/.test("123 un")     -> true
/^\d+( (u(n(i(t(s)?)?)?)?)?)?$/.test("123 ui")     -> false
/^\d+( (u(n(i(t(s)?)?)?)?)?)?$/.test("12")         -> true
/^\d+( (u(n(i(t(s)?)?)?)?)?)?$/.test("123 xx")     -> false

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有