【问题标题】:How to automatically add parentheses and slashs in a form input?如何在表单输入中自动添加括号和斜杠?
【发布时间】:2019-11-29 22:12:41
【问题描述】:

所以,我正在做一个表格,我需要从客户那里接收电话号码,我希望它自动添加括号和斜杠(我国家的电话号码是(XX)XXXXX-XXXX)是无论如何,我只能使用 html 和 php 来做到这一点?不使用 javascript 或 jquery

对不起我的英语

编辑:问题是,显然我使用的主机不支持 javascript,这是常见的事情还是我应该寻找另一个主机?或者我只是误解了,这种缺乏支持是在服务器端 javascript 而不是在客户端?

 <form class="form-signin" method="POST">
    ...
    <label for="inputNumber" class="sr-only">Phone number</label>
    <input type="text" name="number" id="inputNumber" class="form-control" placeholder="Phone number" required autofocus>
    ...
</form>

【问题讨论】:

  • 不清楚您希望在哪里进行转换。你打算如何存储它?如果您要将其格式化存储,则无需在表单中执行任何操作;在将其保存到数据库之前,您需要将其转换为数据验证的一部分。但是,如果您在没有格式化的情况下存储它,则需要一个装饰器函数来格式化您在表单中呈现它。
  • 如果您想接受他们的输入并在提交之前显示其格式,那么您必须使用客户端语言(JavaScript/JQuery)
  • 如果您需要在按钮单击时格式化(pr 任何其他触发器),您可以使用纯 php 来完成,如果您需要在旅途中格式化(在打字时),您只能通过 javascript 来完成。
  • 你设法让它工作了吗?

标签: php html xampp


【解决方案1】:

您可以使用substr 拆分字符串,然后使用sprintf 再次格式化,例如:

function formatPhone($number) {
    return sprintf(
        '(%s)%s-%s',
        substr($number, 0, 2),
        substr($number, 2, 5),
        substr($number, 7, 4)
    );
}

echo formatPhone('32949412293') // prints (32)94941-2293

【讨论】:

  • 我建议把它作为一个函数来做,它鼓励重用。即function as_phone($number) { ...)
  • 同意,我刚刚发布了一个简单的例子来说明如何做到这一点。我会更新我的答案。
猜你喜欢
  • 1970-01-01
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 2017-11-30
  • 2014-07-18
  • 1970-01-01
  • 2019-03-03
相关资源
最近更新 更多