业务场景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,用于各种场景的输入校验的更多相关文章

  1. 常用的JavaScript正则匹配规则代码收藏,很实用

    收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水平菜,老是自己写不出 ...

  2. excel VBA正则匹配单元格符号,并按符号把单元格拆分行(这里是按第一列分行,分行是从活动单元格的行开始,分行前需要选择所有需要填充内容的列,否则需要后期手动填充)

    Sub W()   ' MsgBox "行数:" & Selection.Rows.Count    Dim rows_count As Integer    Dim ro ...

  3. 我也谈javascript正则匹配

    一.javascript 正则全局匹配 g 慎用test()方法 来个例子: var a = /^[a-z]+/gi; a.test('bb123'); //true a.lastIndex ; // ...

  4. JS正则密码复杂度校验之:JS正则匹配半角英文符号

    概述 在JS密码校验中常常会遇到密码强度的校验需求,借用一位朋友提问的图,他在工作中遇到的一个比较经典的密码强度校验要求: 这个需求有两个难点,一,是如何使用正则匹配所有半角英文标点符号,二,是如何验 ...

  5. JavaScript——正则匹配、正则提取、正则替换

    正则匹配 // 匹配日期 var dateStr = '2015-10-10'; var reg = /^\d{4}-\d{1,2}-\d{1,2}$/ console.log(reg.test(da ...

  6. [html][javascript] 正则匹配示例

    var str="akdlfaklhello 1234klfd1441ksalfd9000kals8998j2345fd;lsa"; var reg = new RegExp(/( ...

  7. javascript 正则匹配手机号码

      <form class="form-horizontal" name="mobileform" style="padding:10px;&q ...

  8. javascript 正则匹配 提取所有 preg_match_all matchAll方法

    javascript 提取全部的的方法.javascript中没有matchAll这种方法. 用while来实现类似 PHP 中的preg_match_all() :(by default7#zbph ...

  9. javascript正则(带g符号) 多次调用test 结果交替出现

    链接:https://segmentfault.com/q/1010000000582051 http://stackoverflow.com/questions/2851308/why-does-m ...

随机推荐

  1. redis cluster下的pipeline

    因为key在cluster分布在不同的slot,可能在不同的机器,部分redis的客户端(比如jedis)是不支持pipeline的 针对jedis我们可能要先把这些key对应的slot手机起来,得到 ...

  2. redis new

    redis cluster 数据结构 geo,heperloglog 3个非核心dict:阻塞dict,非阻塞dict,watch dict 3个bio线程,生产者消费者模式,主线程生产者: 1.la ...

  3. LaTeX中的数学公式的初步使用

    数学公式初步使用代码及注释: 显示效果:

  4. 这篇建议java开发都看看,对Java方法及加深理解的很深,值得一看!

    方法和加深 方法的定义 修饰符 返回类型 break:跳出switch,结束循环 和 return 的区别 方法名:注意规范 见名知意 参数列表(参数类型,参数名)- 异常抛出 // Demo01 类 ...

  5. sitespeedio前端性能测试工具介绍

    很久没有写博客了,今天给大家介绍一款比较好用的前端性能测试工具. sitespeedio简介: sitespeed.io是Jonathan Lee发布的一款可监视和衡量网站前端性能的开源工具. 1.开 ...

  6. PyQt(Python+Qt)学习随笔:QAbstractItemView的showDropIndicator属性

    老猿Python博文目录 老猿Python博客地址 概述 QAbstractItemView的showDropIndicator属性用于控制在拖拽过程中显示当前拖拽到的位置,当释放时则在当前拖拽位置覆 ...

  7. 用python讲解数据结构之树的遍历

    树的结构 树(tree)是一种抽象数据类型或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合 它具有以下的特点: ①每个节点有零个或多个子节点: ②没有父节点的节点称为根节点: ③ ...

  8. js- for in 循环 只有一个目的,遍历 对象,通过对象属性的个数 控制循环圈数

    for in 循环会返回 原型 以及原型链上面的属性,不会打印系统自带的属性 var obj ={  name:'suan',  sex :'male',  age:150,  height:185, ...

  9. NET CORE通过NodeService调用js

    在 .NET Framework 时,我们可以通过V8.NET等组件来运行 JavaScript,不过目前我看了好几个开源组件包括V8.NET都还不支持 .NET Core ,我们如何在 .NET C ...

  10. Tomcat启动报错org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file

    错误: 今天SVN导入新项目后启动项目时控制台报错,之后在网上搜了很多方法.下面列了一些大佬的解决方案: 1. 检查日志配置文件-logging.properties:https://www.cnbl ...