正则表达式就是用于描述这些规则的工具,换句话说,正则表达式就是记录文本规则的代码。什么时候会用到正则表达式呢,就是在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要时会用到。
- 正则表达式是一门灵活性非常强的语言,匹配同样的字符串可能在不同的开发人员那里会得到不一样的结果,正则表达式代表了一个不可变的正则表达式。正则表达式提供了功能强大、灵活而又高效的方法来处理文本。总之,正则表达式十分的强大,只能慢慢的来学习它的功能。今天,就让我们来认识一下简单的正则的语法。
. 匹配除换行符以外的任意字符
\w 匹配数字或字母或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
- 上面的就是正则里面的简单的语法,这样的简单的语法能使我们写一些简单的正则表达式了。在写正则表达式的时候,我们需要安装一个RegexBuddy4的软件来帮助我们写正则表达式,那么正式写一个正则是怎么写的呢?我相信你们一定非常好奇,那么就让我们来写一下吧。我们来写一个电话号码的正则,
匹配下面三个电话号码:
(010)88886666,或022-22334455,或0291234567
这个就是匹配电话号码的正则
- 匹配出正则表达式后我们怎么在我们怎么使用它的,下面在让我们去学习另外一个吧,假如页面上有一个Input标签,我们来给它写以个只能输入汉字和字母的正则,下面是一个Input。
- 我们给Input加一个onkeyup="value=value.replace(/[^\w\/]/ig,'')",加了之后它在页面上就只能输入汉字和英文了,这样当用户输入其他数据的时候就会自动删除它。
- 匹配图片的文件名称,首先读取原始的文本内容。
var imgReader = new FileReader();
//图片文件 正则表达式过滤image/jpeg,image/png,image/jpg,image/gif,image/bmp
regexImageFilter = /^(?:image\/bmp|image\/gif|image\/jpg|image\/jpeg|image\/png)$/i;
//文件获取 onload事件
imgReader.onload = function (evt) {
$("#NoticeCarousePicture").attr("src", evt.target.result);
}
//打开图片文件选择
function showImageFile() {
$("#NoticeCarouseImage").click();
}
这样一个图片的正则也就出来了。