学习js正则表达式

·  阅读 223

正则表达式简介

  • 正则表达式是由一个字符序列形成的搜索模式。
  • 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
  • 正则表达式可以是一个简单的字符,或一个更复杂的模式。
  • 正则表达式可用于所有文本搜索和文本替换的操作。

js中使用正则表达式

语法格式

/正则表达式主体/修饰符(可选)
复制代码

修饰符

可以在全局搜索中不区分大小写:

  • i:执行对大小写不敏感的匹配。
  • g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
  • m:执行多行匹配。

正则表达式主体 

由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。

字符串方法

  1. search() 方法

用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

var str = "study js"; 
console.log(str.search(/js/i)) //6
复制代码
  1. replace() 方法

用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

var str = "study js"; 
console.log(str.replace(/js/i,"css")) //study css
复制代码

正则表达式方法

  1. test() 方法

test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

var str = "study js"; 
var patt = /js/;
console.log(patt.test(str)) //true
复制代码
  1. 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">
复制代码
分类:
前端
标签:
分类:
前端
标签: