电话号码中的Javascript破折号

标签 javascript

我试图研究这个问题的答案,但我迷路了。我正在尝试制作一个自动在电话号码中添加破折号的搜索栏。我已经解决了。

下一部分是具有挑战性的部分。我怎样才能让它始终执行 XXX-XXX-XXXX,即使粘贴的字符类似于 555 555 1212 或 555---555-1212,它只会卷回数字并输出 55​​5-555-1212。它不应将空格或额外的破折号计为一个字符。

我找到了:http://www.jotform.com/answers/15202-can-I-add-script-to-my-form-that-will-automatically-add-hyphens-in-between-the-3-digit-area-code-and-also-the-3-digit-prefix

我稍微修改了一下,添加了:

<SCRIPT LANGUAGE="JavaScript">
        function addDashes(f)
            {
                f.value = f.value.slice(0,3)+"-"+f.value.slice(3,6)+"-"+f.value.slice(6,15);
            }
    </SCRIPT>


<input id="input_4" class="form-textbox" maxlength="15" name="atn" size="25" onBlur='addDashes(this)' />

目前,这仅在用户输入 5555555555 并自动将其转换为 555-555-5555 时有效。我想弄清楚如何将 5-55555-5555 之类的东西变成 555-555-5555。目前,它是 5-5-555-5-5555。

看到我的困境了吗?哈哈。它不能是 php 或任何服务器端脚本,因为它必须能够在桌面上运行。


解决方案:

<SCRIPT LANGUAGE="JavaScript">
        function addDashes(f)
            {
                f.value = f.value.replace(/\D/g, '');

                f.value = f.value.slice(0,3)+"-"+f.value.slice(3,6)+"-"+f.value.slice(6,15);
            }
    </SCRIPT>

最佳答案

首先,通过删除所有不是数字的字符来清理您的输入(引用:Regex to replace everything except numbers and a decimal point)

然后,你输入破折号。

function addDashes(f)
{
    f_val = f.value.replace(/\D[^\.]/g, "");
    f.value = f_val.slice(0,3)+"-"+f_val.slice(3,6)+"-"+f_val.slice(6);
}

关于电话号码中的Javascript破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093187/

相关文章:

javascript - 如何在 SurveyJS 中以编程方式处理 'Next' 按钮? (调查 react )

javascript - getSeconds() 和分钟翻转

页面 anchor 的Javascript onclick window.location?

javascript - HTML整页缩小工具?

javascript - 表单验证 - 禁用按钮

php - AJAX无法识别json数组

javascript - 如何使用 React-Router 将页面限制为访客用户?

javascript - ajax 和 getJSON 调用之间的区别?

javascript - 我如何为单选按钮创建类似所需警报的 HTML5?

c# - 打开另一个弹出窗口时关闭一个弹出窗口