JavaScript 正则匹配中文,中文符号,空格,全数字,以https:// 开头的url,用于各种场景的输入校验
业务场景1:
密码输入框需要验证输入中文,中文符号,空格等情况,以便于给出错误提示
业务场景2:
输入框只允许输入数字的情况
业务场景3:
输入框允许输入均为数字或以https:// 开头的url的情况
备注:
网上查阅的大部分JavaScript中文/中文符号/空格等正则匹配,在中文加一个英文或者数字都能校验通过,无法满足实际的校验需求,使用下面的字符串替换方法,并比对str替换前后的length,即可完成准确的实际校验需求
var length = str.length
// str为想要验证的字符串
console.log('length====>>>>>',length)
var chinese_length = str.replace(/[\u4e00-\u9fa5]/g,'').length
// chinese_length为匹配到中文后并替换成''之后的str字符串长度,中间的正则匹配中文,例如str = 'te测试st',length = 6,chinese_length = 4,用于做后面的逻辑判断
var space_length = str.replace(/\s/g,'').length
// space_length 为匹配到字符串中间的空格后并替换成''之后的str字符串长度,中间的正则匹配字符串中间的空格,例如str = 'te st',length = 5,space_length = 4,用于做后面的逻辑判断
// 注意如果str = ' tes t ',str首部和尾部均有空格的场景,可以考虑使用trim()进行删除,删掉头尾的空格后再进行操作,trim()使用方法自行查阅
console.log('space_length ====>>>>>',space_length )
var CN_punctuation_length = str.replace(
/[\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5]/g,'').length
// CN_punctuation_length 为匹配到字符串的中文符号后并替换成''之后的str字符串长度,中间的正则匹配字符串的常用的所有中文符号,例如str = 't。e【st',length = 6,CN_punctuation_length = 4,用于做后面的逻辑判断
console.log('CN_punctuation_length ====>>>>>',CN_punctuation_length )
if (length !== chinese_length) {
throw new Error(`输入不合法,个人链接/个人代码禁止使用中文:${str}`)
} else if (length !== CN_punctuation_length) {
throw new Error(`输入不合法,个人链接/个人代码禁止使用中文符号:${str}`)
} else if (length !== space_length) {
throw new Error(`输入不合法,个人链接/个人代码禁止使用空格:${str}`)
} else {
if(/^\d+$/.test(str)){
//此步骤判断是否str均为数字组成
const code = str
} else if (/(https):\/\/([\w.]+\/?)\S*/.test(str)){
//此步骤判断是否str为https:// 开头的url
const url = str
} else {
throw new Error(`输入不合法,请输入正确的个人链接/个人代码:${str}`)
}
JavaScript 正则匹配中文,中文符号,空格,全数字,以https:// 开头的url,用于各种场景的输入校验的更多相关文章
- 常用的JavaScript正则匹配规则代码收藏,很实用
收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水平菜,老是自己写不出 ...
- excel VBA正则匹配单元格符号,并按符号把单元格拆分行(这里是按第一列分行,分行是从活动单元格的行开始,分行前需要选择所有需要填充内容的列,否则需要后期手动填充)
Sub W() ' MsgBox "行数:" & Selection.Rows.Count Dim rows_count As Integer Dim ro ...
- 我也谈javascript正则匹配
一.javascript 正则全局匹配 g 慎用test()方法 来个例子: var a = /^[a-z]+/gi; a.test('bb123'); //true a.lastIndex ; // ...
- JS正则密码复杂度校验之:JS正则匹配半角英文符号
概述 在JS密码校验中常常会遇到密码强度的校验需求,借用一位朋友提问的图,他在工作中遇到的一个比较经典的密码强度校验要求: 这个需求有两个难点,一,是如何使用正则匹配所有半角英文标点符号,二,是如何验 ...
- JavaScript——正则匹配、正则提取、正则替换
正则匹配 // 匹配日期 var dateStr = '2015-10-10'; var reg = /^\d{4}-\d{1,2}-\d{1,2}$/ console.log(reg.test(da ...
- [html][javascript] 正则匹配示例
var str="akdlfaklhello 1234klfd1441ksalfd9000kals8998j2345fd;lsa"; var reg = new RegExp(/( ...
- javascript 正则匹配手机号码
<form class="form-horizontal" name="mobileform" style="padding:10px;&q ...
- javascript 正则匹配 提取所有 preg_match_all matchAll方法
javascript 提取全部的的方法.javascript中没有matchAll这种方法. 用while来实现类似 PHP 中的preg_match_all() :(by default7#zbph ...
- javascript正则(带g符号) 多次调用test 结果交替出现
链接:https://segmentfault.com/q/1010000000582051 http://stackoverflow.com/questions/2851308/why-does-m ...
随机推荐
- C++stl简单使用
1 //1.sort函数排序 2 /* 3 #include <iostream> 4 #include <algorithm> 5 using namespace std; ...
- LaTex中的中文处理方法
相关代码与注释: 显示效果:
- Leetcode 021 Merge Two Sorted Lists
摘要:Merge two sorted linked lists and return it as a new list. The new list should be made by splicin ...
- LeetCode 028 Implement strStr()
题目要求:Implement strStr() Implement strStr(). Returns the index of the first occurrence of needle in h ...
- 11_SurfaceView绘图
学习SurfaceView绘图API的使用方法,为接下来使用SurfaceView开发游戏做准备. 1 package com.example.surfaceview; 2 3 import andr ...
- Spring Cloud Alibaba 初体验(六) Seata 及结合 MyBatis 与 MyBatis-Plus 的使用
一.下载与运行 本文使用 Seata 1.1.0:https://github.com/seata/seata/releases Windows 环境下双击 bin/seata-server.bat ...
- Redis数据库简介
最近的项目需要用到Redis数据库和MySQL,恶补学习. Redis的使用手册可以看: https://redis.io/ https://www.runoob.com/redis/redis-tu ...
- 性能测试学习之路 (三)jmeter常见性能指标(相关术语、聚合报告 && 服务器性能监控配置 && 图形结果 && 概要报告)
1 性能测试目的 性能测试的目的:验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,以优化软件. 最后起到优化系统的目的性能测试包括如下几个方面: 1.评估系统的能力:测试 ...
- Day6【Scrum 冲刺博客】
每日会议总结 昨天已完成的工作 方晓莹(PIPIYing) 对接住户相关接口 处理token过期重定向.页面跳转.错误状态处理等内容 方子茵(Laa-L) 暂无 黄芯悦(Sheaxx) 完善物业报修页 ...
- 第 3 篇 Scrum 冲刺博客
每天举行会议 会议照片: 昨天已完成的工作与今天计划完成的工作及工作中遇到的困难: 成员姓名 昨天完成工作 今天计划完成的工作 工作中遇到的困难 蔡双浩 了解任务,并做相关学习和思考,创建基本的收藏夹 ...