【问题标题】:Regular expression: Match exact number of digits and ignore spaces正则表达式:匹配确切的位数并忽略空格
【发布时间】:2018-06-13 12:20:11
【问题描述】:

我想精确匹配 8 位数字,数字序列可以包含空格。例如,以下所有内容都是有效的。

'12345678'
' 12 345678'
'12345678    '
'1 2 3 4 5 6 7 8  '
'123 456 78'

我已阅读此内容,但答案也匹配超过 8 位数字。 Ignoring white space for a Regex match

【问题讨论】:

  • \s*(\d\s*){8}。顺便说一句,到目前为止,您尝试过什么?
  • 这个问题背后的逻辑要复杂得多,我尝试以最简单的方式提问。当然,我在问之前尝试了很多组合,但我似乎错过了最简单的一个。
  • 如果你的问题背后有“更难的逻辑”,你应该解释它,你的方法可能是错误的,答案会更有趣。说明您正在尝试做什么并展示您已经完成的工作。
  • 在大多数情况下,您需要将anchors 添加到您的字符串中。
  • @wdetac 那么Quantifiers in Regular Expressions 应该会更清楚地解决重复模式的问题。

标签: regex


【解决方案1】:

正如 Jaroslaw Pawlak 所说:

var str = "123 456 78 ";
var test = /^\s*(\d\s*){8}$/.test(str);
console.log(test); // true

【讨论】:

【解决方案2】:

你可以使用这个正则表达式:

(\d\s*\d\s*\d\s*\d\s*\d\s*\d\s*\d\s*\d)

或:

((\d\s*){7}\d)

【讨论】:

  • 谢谢你的回答不正确,但我从idea中得到了答案。
猜你喜欢
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2021-09-13
  • 2020-08-06
  • 2021-05-31
  • 1970-01-01
相关资源
最近更新 更多