【问题标题】:Regex is allowing white spaces and complete blank spaces正则表达式允许空格和完整的空格
【发布时间】:2016-03-16 12:36:49
【问题描述】:

让我说清楚。我必须验证 2 个电话号码。他们是我的要求。不特定于任何国家。它可以留空。意思是,它不是强制性的。但不应该是

  1. 用空格填充 -- 我应该抛出错误
  2. Like 12 123 之间不应包含空格

我正在使用模式 ^[-+()0-9]{1,20}$。案例 1 使用此正则表达式失败。我该如何解决?

【问题讨论】:

  • 你可以使用 .trim() 方法
  • 一些有效匹配的例子会很棒。
  • 您的正则表达式至少允许一个字符,最多 20 个字符集合 -, +, (, ), 0, ..., @987654326 @。您究竟在哪里看到任何空白字符的余量?
  • 大家好,。我的意思是.. 当它完全充满空间时.. 它失败了.. 就像 12 123 被困在模式中...但是如果输入全是空格.. 它无法验证
  • 如果可以留空,则需要将{1,20}改为{0,20}

标签: java regex


【解决方案1】:

您可以使用PHONE_NUM.replaceAll("[^0-9]","") 消除所有非数字。

那么,如果您的结果.length() 超过 20,则您的位数过多。如果为 0(表示为空),则您没有获得电话号码。

如果你能正确处理空白,它将减少用户的挫败感。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2016-08-22
    相关资源
    最近更新 更多