如何使用 JavaScript 屏蔽 HTML 输入?

2023-12-25

如何在 HTML 控件上使用 javascript 屏蔽美国电话。

我希望输入强制文本采用以下格式:

[(111)111-1111]

这是我目前拥有的:

mask(str, textbox, loc, delim) {
    var locs = loc.split(',');
    for (var i = 0; i <= locs.length; i++) {
        for (var k = 0; k <= str.length; k++)
        {
            if (k == locs[i]) {
                if (str.substring(k, k + 1) != delim) {
                    str = str.substring(0,k) + delim + str.substring(k,str.length)
                }
             }
         }
     }
     textbox.value = str
} 

处理保证格式的电话号码输入有三种常见方法:

1. 无论如何接受所​​有数字输入

数字不明但仍居住在美国的用户的可能性比以往任何时候都高。接受各种数字输入可以减轻您的担忧,因为只有当他们给您的数字不够或错误时,这些数字才会毫无用处。

2、分割成三个固定长度的文本框

很多财务软件都是这样做的。不知道为什么,具体来说,但它似乎在那里相当频繁。如果他们在文本框中输入了最大限制,建议在按键后将光标前进到下一个框。另外,这保证了您将以您期望的任何格式获得数字,因为您只需将生成的后变量附加在一起即可。

HTML 示例:

<input id="phonePart1" maxlength="3" name="phonePart1"/>
<input id="phonePart2" maxlength="3" name="phonePart2"/>
<input id="phonePart3" maxlength="4" name="phonePart3"/>

和一个小 jQuery 片段,用于将这三个内容合并为您的格式:

var phonePart1 = parseInt($("#phonePart1").val(), 10);
var phonePart2 = parseInt($("#phonePart2").val(), 10);
var phonePart3 = parseInt($("#phonePart3").val(), 10);
var phone = "(";

if (isNaN(phonePart1)||isNaN(phonePart2)||isNan(phonePart3)) {

    // Incorrect format

} else { 

    phone = phone + phonePart1 + ")" + phonePart2 + "-" + phonePart3;

}

3.使用正则表达式匹配数字格式

您可以使用正则表达式的组合来匹配多个数字,或者明确地匹配您要询问的数字。这可能就是您正在寻找的技术。 这是正则表达式:

/\([0-9]{3}\)[0-9]{3}-[0-9]{4}/

你会像这样使用它:

if (yourphonevariable.match(/\([0-9]{3}\)[0-9]{3}-[0-9]{4}/))
{
    // it's valid
}

4. 如果您想使用蒙版来格式化文本本身......

考虑 jQuery 插件http://digitalbush.com/projects/masked-input-plugin/ http://digitalbush.com/projects/masked-input-plugin/。用户 @John Gietzen 在这篇文章之外向我建议了这一点,所以请随意给他点赞。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JavaScript 屏蔽 HTML 输入? 的相关文章

随机推荐

  • 在officeR的body_add_table()函数中更改字体大小和样式

    我正在尝试更改官员表格中的字体大小body add table 功能 但没有成功 我怎样才能做到这一点 我正在使用以下代码 body add table my doc value tab02 style table template fon
  • CFFILE - 使用组件上传文件

    我有一个表单 我想提交给组件进行处理 CRUD 行为 问题是似乎将多部分 表单数据传递给组件会以某种方式丢失文件位置 当到达应该上传文件的组件部分时 我收到臭名昭著的表单字段不包含文件错误 我不是 100 确定为什么会发生这种情况 但如果我
  • 如何只推送到 Hg 中的一个分支?

    我有一个 Hg 存储库 其中有 3 个分支 但其中两个处于非活动状态 因为我已经将它们合并到我的默认分支中 hg heads显示 3 个头 每个分支一个 尽管汞分支显示其中 2 个分支为 非活动 当我尝试推送我的默认分支时 使用hg Pus
  • InvalidDefinitionException:无法构造“com.vehicle.datatransferobject.VehicleDTO”的实例

    在我在 Spring Boot 中构建的 REST 端点中 我试图传递我的vehicleDTO到我的控制器 但在它到达我的控制器之前 出现了错误 InvalidDefinitionException 无法构造实例com vehicle da
  • 为什么在这个智能合约上使用断言?

    contract Sharer function sendHalf address payable addr public payable returns uint balance require msg value 2 0 Even va
  • TextInputLayout 后缀/前缀[重复]

    这个问题在这里已经有答案了 我想为 TextInputLayout 添加后缀 一个例子取自材料 io https material io guidelines components text fields html text fields
  • RestController 的最佳实践是什么?

    代码约定表明控制器中没有逻辑 一切都应该在服务层处理 我的问题特别是关于返回 ResponseEntity 应该在RestController中处理还是在Service层中处理 我两种方法都尝试过 我认为 RestController 是返
  • 这个spring类BatchPreparedStatementSetter有什么用呢?

    谁能给我简单介绍一下他的春季班 org springframework jdbc core BatchPreparedStatementSetter JavaDoc API 链接 http static springsource org s
  • java 使用机器人类发送击键

    我知道可以使用 Robot Class 在 java 中发送击键 但是有没有办法在目标进程已经启动时指定目标进程 机器人会将击键发送到顶部的应用程序窗口 要将击键发送到特定目标 您需要首先将该目标设置为平台的前台窗口 执行此操作可能需要本机
  • Mongoose如何使用位置运算符从具有特定条件的双重嵌套数组中提取数据,并返回新结果

    假设我有以下架构 id ObjectId 1 title string answers id ObjectId 2 text string upVotes id ObjectId 3 userId ObjectId 4 我想要的是从答案赞成
  • 镜像 Azure DevOps (Azure Repos) 中的所有 GitHub 活动

    我有一个案例 我想将所有内容存储在 Azure DevOps 中 CI CD Scrum 测试 发布 但我仍然想将所有代码托管在 GitHub 上 如何在 Azure DevOps 中镜像 GitHub 中创建的所有分支 合并 提交 PR
  • 如何在结构体定义中初始化数组?

    如何在此结构中将数组值设置为 0 这显然是错误的 我该如何正确地做呢 struct Game board i32 3 3 0 0 0 0 0 0 0 0 0 在一个函数中 这将是 let board i32 3 3 0 0 0 0 0 0
  • 在 testng @AfterMethod 中检测测试失败

    如果测试失败我想截图 我不想用 try catch 块包装所有测试方法 而是想将此逻辑添加到用注释注释的方法中 AfterMethod 我怎样才能在注释的方法中检测到 AfterMethod如果当前测试失败 如果方法注释为 AfterMet
  • 如何在 Mozilla Firefox 中使用 javascript 创建文件

    我想用 javascript 编写一个函数 它创建一个文件并向其中写入一些内容 我正在使用 Firefox 任何人都可以在这种情况下帮助我 谢谢 您可以在 Firefox 中使用 JavaScript 编写文件 但必须使用 XPCOM 对象
  • 标记不使用 @react-google-maps/api 渲染

    我对反应世界相对较新 尤其是使用谷歌地图 我正在使用 react google maps api 和 React 版本 18 我试图显示多个位置 作为标记 但是 它们没有显示在初始渲染上 我遵循了文档 没有收到任何错误 只是未显示标记 有谁
  • SDK 更新后出现意外的顶级异常

    我正在开发一个 Android 项目 该项目的构建路径中有一个 Android 库项目 这两个项目的 libs 文件夹和构建路径中都有 AdWhirl SDK 库 现在 自从将 android sdk 工具更新到 r15 后 主项目的 an
  • 如何判断Rails Association是否是Eager Loaded?

    有谁知道如何确定 Rails 关联是否已预先加载 我的情况 我有一个结果集 其中有时会急切加载其中一个关联 有时则不会 如果它不是急切加载的 那么我想使用 ActiveRecord 的 find 来查找关联 如果它是急切加载的 我想使用检测
  • 是否可以以 HH:MM:SS 格式打印持续时间?

    t1 lt as POSIXct 2017 03 02 11 58 20 t2 lt as POSIXct 2017 03 02 12 00 05 print lubridate as duration lubridate interval
  • R 并行作业挂起

    我正在运行网站上写的 Snow test R 脚本 https hpcf umbc edu other packages how to run r programs on maya https hpcf umbc edu other pac
  • 如何使用 JavaScript 屏蔽 HTML 输入?

    如何在 HTML 控件上使用 javascript 屏蔽美国电话 我希望输入强制文本采用以下格式 111 111 1111 这是我目前拥有的 mask str textbox loc delim var locs loc split for