【问题标题】:How do I add white space in regex?如何在正则表达式中添加空格?
【发布时间】:2016-05-17 19:47:55
【问题描述】:

我有这个代码:

代码 JS:

const phone= /^\(?(\d{3})\)?[-]?(\d{3})[-]?(\d{4})$/;

这段代码运行后有如下形式

(123)132-1312

我想在最后一个括号之前添加空格,如下例所示。

(123 )132-1312

能否请您告诉我如何接受对代码的更改以便留出空白?

提前致谢!

编辑:

text = $(this).val().replace(/(\d{3})(\d{3})(\d{4})/, "($1)$2-$3");
var testt=$(this).val().match(text);

我添加了这段代码来调用这里作为添加空格...

【问题讨论】:

  • 我想肯定还有其他问题在问同样的问题。
  • 最后一个括号前的空格是可选的还是必需的?
  • 问题现在还不清楚。输入是什么,您的预期输出是什么?

标签: javascript jquery regex


【解决方案1】:

这应该可以满足您的需要:

/^\(?\s*(\d{3})\s*\)?[-]?(\d{3})[-]?(\d{4})$/

【讨论】:

    【解决方案2】:

    取决于您是否总是想要右括号前的空格,或者您是否可以使用:

    ^\(?(\d{3}\s?)\)?[-]?(\d{3})[-]?(\d{4})$

    背景\s 用于空格。 ? 代表前一个符号的 0 或 1 次出现。如果你使用+,它是一个或多个,* 是前一个符号出现 0 次或多次。

    要测试您的正则表达式,您可以随时使用regexpal

    【讨论】:

    • 我对我的帖子进行了一些编辑...您能告诉我现在如何更改吗?
    • 试试这个:text = $(this).val().replace(/(\d{3}\s?)(\d{3})(\d{4})/, "($1 )$2-$3");
    猜你喜欢
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2012-12-10
    • 2012-10-09
    • 1970-01-01
    相关资源
    最近更新 更多