业务场景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. transform的2D和3D变换

    transform取值 none:默认值,即是无转换 matrix(,,,,,): 以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a,b,c,d,e,f] ...

  2. volatile禁止重排使用场景与单例模式的Double Check Lock

    普通单例模式Demo public class Demo{ private static Demo INSTANCE; private Demo(){} public static Demo getI ...

  3. java45

    Collection c2 = new ArrayList(); c2.add("a"); c2.add("b"); //移除集合中的某个元素 c2.remov ...

  4. C语言printf()函数的格式化字符串

    原文链接:https://www.runoob.com/cprogramming/c-function-printf.html#include<stdio.h> #include<s ...

  5. oracle 游标相关资料

    游标 概述:游标是系统为用户开设的一个数据缓冲区,存放 SQL 语句的执行结果. 我们可以把游标理解为 PL/SQL 中的结果集,把游标当中一个集合 1:在声明区声明游标 cursor 游标名称 is ...

  6. ubantu+nginx+uwsgi+django部署

    1.更新ubantu的apt apt-get update 必要时候更新系统:      apt-get upgrade 2.远程连接服务器 ssh 用户名@ip 上传代码 :        scp ...

  7. Python中的enumerate函数的作用

    enumerate函数是将一个可迭代对象中元素,按元素顺序每个增加一个索引值,将其组成一个索引序列,利用它可以同时获得索引和值,这样做的目的是为了将一个可迭代对象中元素组成一个"索引,值&q ...

  8. OLLVM快速学习

    近来,ollvm在国内移动安全,尤其是安全加固上的使用越来越广泛,ollvm的混淆和反混淆也被视为比较高等的知识之一,让很多人感到无从下手,望尘莫及.如果你在google上搜索ollvm,你会发现第一 ...

  9. 【Codeforces 809E】Surprise me!(莫比乌斯反演 & 虚树)

    Description 给定一颗 \(n\) 个顶点的树,顶点 \(i\) 的权值为 \(a_i\).求: \[\frac{1}{n(n-1)}\sum_{i=1}^n\sum_{j=1}^n\var ...

  10. Codeforces Edu Round 61 A-C + F

    A. Regular Bracket Sequence 显然,"\(()\)"不影响结果它是自我匹配的,可以把所有的\(((\)和\())\)都放在左边/右边,这样只要检查它们的数 ...