首页 > 编程笔记 > JavaScript笔记
阅读:10
JavaScript RegExp对象的用法(附带实例)
正则表达式是计算机科学的一个概念,通常用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。
在 JavaScript 中,RegExp 对象用于处理正则表达式。Web 前端的用户名验证、邮箱验证、密码验证、敏感词过滤等,都可以使用正则表达式来实现。本节将介绍常用正则表达式的用法。
示例如下:
【实例】用户名验证。
当用户输入正确时,程序在 Chrome 浏览器中的运行结果如下图所示:
1) replace() 方法可以在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。语法格式如下:
示例如下:
2) search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。语法格式如下:
示例如下:
3) match() 方法在字符串内检索指定的值,找到一个或多个正则表达式的匹配。语法格式如下:
示例如下:
在 JavaScript 中,RegExp 对象用于处理正则表达式。Web 前端的用户名验证、邮箱验证、密码验证、敏感词过滤等,都可以使用正则表达式来实现。本节将介绍常用正则表达式的用法。
常用正则表达式
var tel = /^\d{11}$/; // 手机号码规则:只能输入11位数字 var userName = /^[a-zA-Z0-9_]{6,16}$/; // 用户名规则:只能输入英文字母、数字、下画线,长度是6~16个字符上述代码中,“/”是正则表达式的定界符,“^1[3|4|5|7|8]\d{9}$”表示正则表达式的模式文本。
RegExp对象常用方法
test() 方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配。语法格式如下:regexObj.test(str)
- 参数 str 代表用来与正则表达式匹配的字符串。
- 如果正则表达式与指定的字符串匹配,方法返回 true,否则返回 false。
示例如下:
var tel = /^1[3|4|5|7|8]\d{9}$/; console.log(tel.test('15936078521')); // 输出:true console.log(tel.test('1693607851')); // 第2位不符合规则,输出:false console.log(tel.test('26936078521')); // 第1位不符合规则,输出:false
【实例】用户名验证。
<input type="text" class="uname"> <span>请输入用户名</span> <script> var reg = /^[a-zA-Z0-9_]{6,16}$/; var uname = document.querySelector('.uname'); var span = document.querySelector('span'); uname.onblur = function() { if (reg.test(this.value)) { span.className = 'right'; span.innerHTML = '用户名格式输入正确'; } else { span.className = 'wrong'; span.innerHTML = '用户名格式输入不正确'; } } </script>程序的功能是当文本框失去焦点时,判断文本框中输入的用户名是否符合规则,并给出相应提示:
- 第 3 行代码声明了一个正则表达式,规则是只能输入英文字母、数字、下画线,长度是 6~16 个字符;
- 第 7 行代码调用正则表达式的 test() 方法,检测文本框的值是否符合规则;
- 第 8~11 行代码根据正则表达式的返回值给出相应的提示。
当用户输入正确时,程序在 Chrome 浏览器中的运行结果如下图所示:

String对象的正则方法
String 对象中常用的正则方法有 repalce() 方法、search() 方法和 match() 方法。下面分别介绍这 3 种方法。1) replace() 方法可以在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。语法格式如下:
stringObject.replace(regexp/substr,replacement)
- 参数 egexp/substr 代表子字符串或要替换的模式的 RegExp 对象;
- 参数 replacement 代表替换文本或生成替换文本的函数。
- 返回值:一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的字符串。
示例如下:
var str = ' abc'; console.log(str.replace(/^\s+/g, "")); // 把字符串前端的空白字符删除,输出:'abc' var str2 = '禁止暴力'; console.log(str2.replace(/暴力/g, "**")); // 敏感词替换,输出:'禁止**'
2) search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。语法格式如下:
stringObject.search(searchvalue)
- 参数 searchvalue 代表查找的字符串或者正则表达式;
- 返回值:与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置,如果没有找到任何匹配的子串,则返回 -1。
示例如下:
var str = "white red green blue"; console.log(str.search(/blue/)); // 搜索字符串blue,输出:16
3) match() 方法在字符串内检索指定的值,找到一个或多个正则表达式的匹配。语法格式如下:
stringObject.match(searchvalue/regexp)
- 参数 searchvalue/regexp 代表要检索的字符串或者正则表达式;
- 返回值:存放匹配结果的数组。
示例如下:
var str = '1234abcd5678qwer9'; console.log(str.match(/\d+/g)); // 找出字符串中所有数字,输出:['1234', '5678', '9']