正则表达式js

1.为什么要用正则表达

就是在表单验证时,准确的判断一个字符串是不是某种固定格式。比如邮箱的验证、手机号的验证等。目的是避免恶意用户的乱输入,使表单的收集是我们想要的格式!

2.什么是正则表达式:

正则表达式就是一个字符串格式的规则。

3. 正则表达式对象

JavaScript中的正则表达式用RegExp对象表示,有两种写法:一种是字面量写法;另一种是构造函数写法

1、构造函数

var reg=new RegExp('<%[^%>]+%>','g');

2、字面量

var reg=/<%[^%>]%>/g;

4. 正则表达式概念

-> regular expression
一个有规则的表达式
简单的说就是一个用于查找的通配符
book
bok
bouk

b*k 或 b?k
将以 b 开头, 以 k 结尾的单词 全部列出来
正则表达式就是 一个用于查找的 含有 匹配字符串 或 匹配元字符的 字符串
“123”
“abc”
“\d” 一个数字( 0 ~ 9 )

5.描述字符范围

在正则表达式语法中,放括号表示字符范围。在方括号中可以包含多个字符,表示匹配其中任意一个字符。如果多个字符的编码顺序是连续的,可以仅指定开头和结尾字符,省略中间字符,仅使用连字符~表示。如果在方括号内添加脱字符^前缀,还可以表示范围之外的字符。例如:

[abc]:查找方括号内任意一个字符。

[^abc]:查找不在方括号内的字符。

[0-9]:查找从 0 至 9 范围内的数字,即查找数字。

[a-z]:查找从小写 a 到小写 z 范围内的字符,即查找小写字母。

[A-Z]:查找从大写 A 到大写 Z 范围内的字符,即查找大写字母。

[A-z]:查找从大写 A 到小写 z 范围内的字符,即所有大小写的字母。

示例1
字符范围遵循字符编码的顺序进行匹配。如果将要匹配的字符恰好在字符编码表中特定区域内,就可以使用这种方式表示。

如果匹配任意 ASCII 字符:

var r = /[\u0000-\u00ff]/g;
如果匹配任意双字节的汉字:

var r = /[^\u0000-\u00ff]/g;
如果匹配任意大小写字母和数字:

var r = /[a-zA-Z0-9]/g;
使用 Unicode 编码设计,匹配数字:

var r = /[\u0030-\u0039]/g;
使用下面字符模式可以匹配任意大写字母:

var r = /[\u0041-\u004A]/g;
使用下面字符模式可以匹配任意小写字母:

var r = /[\u0061-\u007A]/g;
示例2

在字符范围内可以混用各种字符模式。

var s = “abcdez”; //字符串直接量
var r = /[abce-z]/g; //字符a、b、c,以及从e~z之间的任意字符
var a = s.match®; //返回数组[“a”,“b”,“c”,“e”,“z”]
示例3

在中括号内不要有空格,否则会误解为还要匹配空格。

var r = /[0-9]/g;
22222

6.选择匹配

选择匹配类似于 JavaScript 的逻辑与运算,使用竖线|描述,表示在两个子模式的匹配结果中任选一个。例如:

  1. 匹配任意数字或字母

var r = /\w+|\d+/;
2) 可以定义多重选择模式。设计方法:在多个子模式之间加入选择操作符。

var r = /(abc)|(efg)|(123)|(456)/;
为了避免歧义,应该为选择操作的多个子模式加上小括号。

示例

设计对提交的表单字符串进行敏感词过滤。先设计一个敏感词列表,然后使用竖线把它们连接在一起,定义选择匹配模式,最后使用字符串的 replace() 方法把所有敏感字符替换为可以显示的编码格式。代码如下:

var s = ‘’; //待过滤的表单提交信息
var r = /’|"|<|>/gi; //过滤敏感字符的正则表达式
function f() { //替换函数
把敏感字符替换为对应的网页显示的编码格式
return “&#” + arguments[0].charCodeAt(0) + “;”;
}
var a =s.replace(r,f); //执行过滤替换
document.write(a); //在网页中显示正常的字符信息
console.log(a);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值