导读:本期聚焦于小伙伴创作的《JavaScript实现表单文本域中手机号的自动筛选、去重与计数完整教程》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《JavaScript实现表单文本域中手机号的自动筛选、去重与计数完整教程》有用,将其分享出去将是对创作者最好的鼓励。

JavaScript实现表单文本域手机号的自动筛选与计数

在Web开发中,经常需要处理表单文本域中的输入内容,比如从一段文本中筛选出所有有效的手机号并进行计数。本文将介绍如何使用JavaScript实现这一功能,无需依赖第三方库,仅用原生JS即可完成。

需求分析

我们要实现的核心功能如下:

  • 监听表单文本域的输入事件,实时获取输入内容

  • 从输入内容中筛选出符合规则的手机号

  • 统计筛选出的手机号数量并展示

  • 支持去重,避免重复统计同一个手机号

手机号规则说明

国内手机号一般为11位数字,且第二位数字常见范围在3-9之间,我们可以使用正则表达式1[3-9]d{9}来匹配符合规则的手机号。如果需要更严格的校验,可以根据运营商号段调整正则规则,本文以通用规则为例。

实现步骤

1. 构建基础HTML结构

首先创建表单文本域和用于展示结果的区域,相关HTML标签需要正确转义:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>手机号筛选计数</title>
</head>
<body>
    <div class="container">
        <h3>请输入包含手机号的文本内容:</h3>
        <textarea id="textArea" rows="6" cols="50" placeholder="输入文本,例如:我的手机号是13812345678,同事的是13987654321,重复的13812345678只统计一次"></textarea>
        <div class="result">
            <p>筛选到手机号数量:<strong id="count">0</strong></p>
            <p>手机号列表:</p>
            <ul id="phoneList"></ul>
        </div>
    </div>
    <script src="script.js"></script>
</body>
</html>

2. 编写JavaScript逻辑

接下来实现核心的筛选和计数逻辑,代码放在script.js文件中:

// 获取DOM元素
const textArea = document.getElementById('textArea');
const countEl = document.getElementById('count');
const phoneListEl = document.getElementById('phoneList');

// 手机号匹配正则
const phoneReg = /1[3-9]d{9}/g;

// 处理输入事件
textArea.addEventListener('input', function() {
    const inputText = this.value;
    // 使用正则匹配所有符合规则的手机号
    const matchResult = inputText.match(phoneReg);
    // 去重处理
    const uniquePhones = matchResult ? [...new Set(matchResult)] : [];
    // 更新计数
    countEl.textContent = uniquePhones.length;
    // 更新手机号列表
    phoneListEl.innerHTML = '';
    uniquePhones.forEach(phone => {
        const li = document.createElement('li');
        li.textContent = phone;
        phoneListEl.appendChild(li);
    });
});

功能测试

将HTML和JS文件部署后,访问https://www.ipipp.com查看效果,在文本域中输入以下内容测试:

我的手机号是13812345678,同事的是13987654321,另一个是15811112222,重复的13812345678只统计一次,无效号码12345678901不会被匹配。

输入后可以看到计数显示为3,列表中也只展示3个去重后的有效手机号,符合预期效果。

扩展优化

如果需要进一步增强功能,可以做以下扩展:

  • 增加手机号有效性校验,比如调用https://www.ipipp.com的API验证号段是否存在

  • 添加复制筛选结果的功能,方便用户使用

  • 支持自定义手机号匹配规则,允许用户修改正则表达式

  • 增加错误提示,当输入内容不包含有效手机号时给出友好提示

总结

本文通过原生JavaScript结合正则表达式,实现了表单文本域中手机号的自动筛选与计数功能,整个实现过程逻辑清晰,代码量小,易于理解和维护。开发者可以根据实际业务需求调整正则规则或扩展功能,满足更多场景的使用要求。

JavaScript表单处理手机号筛选正则表达式匹配输入监听去重计数

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。