【问题标题】:JavaScript Regular Expression About Numbers关于数字的 JavaScript 正则表达式
【发布时间】:2014-04-27 16:36:48
【问题描述】:

我有一个输入文本,它是一个纯数字文本,允许小数长度为 3,但它不需要是十进制数字,点和十进制数字不需要在那里,至少是整数

文字

至少 1 个整数

最大整数长度为 2

至少 1 个十进制数

最大十进制数长度为 3

接受的场景

“1”

“11.1”

“11.11”

“11.111”

我是正则表达式的新手,这是我所能得到的

/\d{1,2}\.{0,1}\d{0,3}/;

【问题讨论】:

  • 老实说,正则表达式是你必须从头开始学习的东西。你的任务看起来很有挑战性。这是学校的作业,对吧?花点时间在regular-expressions.info/tutorial.html,你不会后悔的。如果你的工具箱中没有正则表达式,你就无法成为一名认真的程序员。

标签: javascript regex


【解决方案1】:

如果我理解正确,你可以这样做:

^\d{1,2}(\.\d{1,3})?$

DEMO

【讨论】:

  • 你的答案是最完美的,但我还需要 1 件不允许 .如果后面没有数字,非常感谢你帮助我
  • @Marwan,是的,它就是这样做的。
  • 嗯我不知道我写对了吗 var d = /^\d{1,2}(\.\d{1,3})?$/mg; d.test(11.);
  • 我需要允许 .仅当我后面至少有一位小数时
  • @Marwan,等等,11.允许还是
【解决方案2】:
\d{2}d{3}\

正好匹配两个数字后跟三个小 d ... 最后的反斜杠可能会导致模式编译错误或请求在这些 d 序列之后的反斜杠。

\d{1,2}

匹配一个两个十进制数字 (0-9)。

\d{1,3}

匹配一个、两个或三个十进制数字。

如果您需要匹配两个不同的序列,您需要在它们之间使用| 组合它们:

\d{1,2}|\d{1,3}

但是,这没什么意义,因为后面部分包含了前者。

\d{1,2}\.\d{1,3}

匹配两位数,后跟一个句点,后跟一到三位数字。但是,如果句号及其后续数字作为一个整体是可选的,则需要先将其分组,然后再声明该组为可选:

\d{1,2}(\.\d{1,3})

正在对后半部分进行分组,而

\d{1,2}(\.\d{1,3})?

最终宣布该组是可选的。

如果要在字符串中匹配所有内容,则需要将其包装在锚点中以匹配字符串的开头和结尾,从而导致

^\d{1,2}(\.\d{1,3})?$

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多