首页 > 编程语言 >面向对象编程-正则表达式

面向对象编程-正则表达式

时间:2022-10-04 10:32:12浏览次数:50  
标签:面向对象编程 正则表达式 nextElementSibling str querySelector var document com

我相信不管是学什么语言,是哪个派路的对这几个字应该不会陌生吧,正则表达式终于让我给碰到了,之前看到了说实话那是真看不懂,一点头绪没有,猜我都猜不出是什么意思,今天终于把这个了解了一番,大概对正则也有一个把握了,今天主要是学习了js的正则一些应用,比如说表单验证啊、中文输入验证啊、敏感词的替换啊、提取字符串啊这些、


首先第一个案例来一个初次认识正则表达式学到的一些基础,是一个座机号码的验证案例,

本案例两个注意点 一个是正则表达式的或只有一个竖线 一个是验证时候数字也要加引号

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 座机号码验证 全国座机号码两种格式 010-12345678 或者 0100-1234567 -->
<script>
var reg = /^\d{3}-\d{8}|\d{4}-\d{7}$/
// var reg = /^\d{3}-\d{8}|\d{4}-\d{7}$/
// var reg = /^\d{3,4}-\d{7,8}$/
console.log(reg.test('010-12345689'));
// 本案例两个注意点 一个是正则表达式的或只有一个竖线
// 一个是验证时候数字也要加引号
</script>
</body>
</html>

第二个案例来一个替换的案例,这个案例大家应该不陌生,比如在网上问候对方爸妈的时候经常会碰到这种尴尬情况,打出了好大些字,很有成就准备发出去的时候,结果全把精髓部分变成了*号

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<textarea name="" id="" cols="30" rows="10"></textarea>
<button>提交</button>
<div></div>
<script>
var text = document.querySelector('textarea')
var btn = document.querySelector('button')
var div = document.querySelector('div')
btn.onclick = function() {
div.innerHTML = text.value.replace(/激情|爱情/g, '**')
}
</script>
</body>
</html>

接下来是一个比较繁琐的一个案例,一个关于表单验证的案例

window.addEventListener('load', function() {
var tel = /^1[3|4|5|8|9]\d{9}$/
var phone = document.querySelector('#tel')
function getBlur(obj, regexp, str) {
obj.onblur = function() {
if (regexp.test(this.value)) {
this.nextElementSibling.innerText = ''+str+'输入正确'
this.nextElementSibling.className = 'success'
} else {
this.nextElementSibling.innerText = ''+str+'输入错误'
this.nextElementSibling.className = 'error'
}
}
}
// 1.手机号码验证
getBlur(phone, tel, '手机号')
// 2.QQ验证
var regqq = /^[1-9]\d{4,10}$/
var qq = this.document.querySelector('#qq')
getBlur(qq, regqq, 'QQ号')
// 3.中文汉字匹配
// 汉字采用的正则是中文第一个的Unicode编码和最后一个
var uname = /^[\u4e00-\u9fa5]{2,8}$/
var nc = this.document.querySelector('#nc')
getBlur(nc, uname, '昵称')
// 4.短信验证码
var msgreg = /^\d{6}$/
var msg = this.document.querySelector('#msg')
getBlur(msg, msgreg, '验证码')
// 5.密码
var pasreg = /^\w{6,16}$/
var pwd = this.document.querySelector('#pwd')
getBlur(pwd, pasreg, '密码')
// 6.确认密码
var surePwd = this.document.querySelector('#surepwd')
surePwd.onblur = function() {
if (this.value == pwd.value) {
this.nextElementSibling.innerText = '密码输入正确'
this.nextElementSibling.className = 'success'
} else {
this.nextElementSibling.innerText = '两次密码不一样'
this.nextElementSibling.className = 'error'
}
}
})

然后是关于字符串同时也能被正则所使用的两个 方法一个是替换的replace方法,一个是可以作为关键字搜索的提取方法

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/* 将下列字符串使用正则表达式替换文本
将字符串 'cqyzsC012QzAabcd'中的acq(忽略大小写)替换为'你好' */
var str = 'cqyzsC012QzAabcd'
var str1 = ''
str1 = str.replace(/[acq]/gi, '你好')
console.log(str1);
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/* 邮箱提取
将字符串'小明:大神么么哒,正好是我想要的,我的邮箱是[email protected]小红:
我老公最爱看这个了,我想给他一个惊喜,么么么哒,邮箱是[email protected]我:好人一生平安,邮箱是[email protected]'中所有
的邮箱号码提取出来 */
var str = '小明:大神么么哒,正好是我想要的,我的邮箱是[email protected]小红:我老公最爱看这个了,我想给他一个惊喜,么么么哒,邮箱是[email protected]我:好人一生平安,邮箱是[email protected]'
// console.log(str);
var str1 = str.match(/[a-zA-Z]+@[a-zA-Z0-9]+.com/g)
console.log(str1);
</script>
</body>
</html>

标签:面向对象编程,正则表达式,nextElementSibling,str,querySelector,var,document,com
From: https://blog.51cto.com/u_5375128/5731106

相关文章

  • 模板变量替换(正则表达式)
    publicclassTemplateReplaceTest{publicstaticvoidmain(String[]args){Stringsql="INSERTINTO${tableName}"+"(${COLUMNS})......
  • 【正则】954- 正则表达式有几种字符匹配模式?
    最近再一次重温老姚大佬的《JavaScript正则表达式迷你书》,并将核心知识点整理一遍,方便复习。原书写得非常棒,建议看下原书啦。 地址:https://github.com/qdlaoyao/js-reg......
  • 面向对象编程
    面向过程&面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么......面对过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题......
  • 正则表达式
    正则表达式符号描述?0个或1个,它就像是可选链操作符*0个或1个或多个+1个或多个......
  • 正则表达式中^的用法
    在使用正则表达式^的时候,有两层意思一限定开头放在规则的开头部分,表示限定开头/^a/表示以a开头 二(否)取反在中括号”[]”中被使用的话就是表示字符类的否定,在这个字......
  • JS 正则表达式
    普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。字符描述[ABC]匹配 [...] 中......
  • JavaScript——正则表达式
    正则表达式                                                         ......
  • Oracle中的正则表达式(及函数)
    运算符在介绍函数前,这里先说明一下Oracle中正则表达式运算符及其描述。如果不知道他们有什么用,或者也不知道描述说的是什么,没关系,可以先看后面的介绍,就知道他们的含义了......
  • JS中面向对象编程(OOP)的基本原理——this关键字、原型链、构造函数、继承
    面向对象编程(ObjectOrientedProgramming),是软件开发过程的主要方法之一。在OOP中,使用对象和类组织代码来描述事物及其功能。虽然点符号是访问对象属性的有效方法(如myobj.......
  • python-正则表达式re模块
    07、正则表达式学习正则表达式操作字符串re模块是用C语言写的没匹配速度非常快其中compile函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象,该对象拥有......