正则表达式简介
- 正则表达式是由一个字符序列形成的搜索模式。
- 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
- 正则表达式可以是一个简单的字符,或一个更复杂的模式。
- 正则表达式可用于所有文本搜索和文本替换的操作。
js中使用正则表达式
语法格式
/正则表达式主体/修饰符(可选)
修饰符
可以在全局搜索中不区分大小写:
- i:执行对大小写不敏感的匹配。
- g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
- m:执行多行匹配。
正则表达式主体
由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。
字符串方法
- search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
var str = "study js";
console.log(str.search(/js/i)) //6
- replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str = "study js";
console.log(str.replace(/js/i,"css")) //study css
正则表达式方法
- test() 方法 test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
var str = "study js";
var patt = /js/;
console.log(patt.test(str)) //true
- exec() 方法 exec() 方法用于检索字符串中的正则表达式的匹配,该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
var str = "study js";
var patt = /js/;
console.log(patt.exec(str)) //["js", index: 6, input: "study js", groups: undefined]
实践
我们经常会用正则表达式验证控制文本框的输入字符类型,以下我罗列几个:
1.只能输入数字和英文的:
<input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1">
2.只能输入数字的:
<input onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2">
3.只能输入全角的:
<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" ID="Text3" NAME="Text3">
4.只能输入汉字的:
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4">