您的位置:首页 > Web前端 > JavaScript

正则表达式学习笔记

2007-10-17 10:34 573 查看
[align=left]本人使用正则表式,主要是为了对数据验证提高效率。但不知还有什么其它的妙用。[/align]
[align=left] [/align]

一、常用元字符

[align=left]所谓元字符,是正则表达式规定的一些特殊代码,在表达式中有特殊的含义,这里只列出了一些很常用的[/align]

代码说明
.匹配除换行符以外的任意字符
/w匹配字母或数字或下划线或汉字
/s匹配任意的空白符
/d匹配数字
/b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
代码/语法说明
/W匹配任意不是字母,数字,下划线,汉字的字符
/S匹配任意不是空白符的字符
/D匹配任意非数字的字符
/B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
[align=left] [/align]

二、常用正则表达式

[align=left]匹配中文字符的正则表达式: [/u4e00-/u9fa5]   只要包含中文就返回true
匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
匹配网址URL的正则表达式:[a-zA-z]+://[^/s]*
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:/d{3}-/d{8}|/d{4}-/d{7}
匹配腾讯QQ号:[1-9][0-9]{4,}
匹配中国邮政编码:[1-9]/d{5}(?!/d)
匹配身份证:/d{15}|/d{18}
匹配ip地址:/d+/./d+/./d+/./d+[/align]
[align=left]匹配特定数字:
^[1-9]/d*$    //匹配正整数
^-[1-9]/d*$   //匹配负整数
^-?[1-9]/d*$   //匹配整数
^[1-9]/d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]/d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]/d*/./d*|0/./d*[1-9]/d*$   //匹配正浮点数
^-([1-9]/d*/./d*|0/./d*[1-9]/d*)$  //匹配负浮点数
^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$  //匹配浮点数
^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$  //匹配非正浮点数(负浮点数 + 0)[/align]
[align=left]^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^/w+$  //匹配由数字、26个英文字母或者下划线组成的字符串[/align]
[align=left] [/align]

三、javascript中正则表达式的使用

[align=left] [/align]
[align=left]以下代码用来测试字符串是否含有'/等非法字符,由test方法执行。[/align]
[align=left]<script>
var s= 'sdfd//f';
alert(issafe(s));
function issafe(str){
var reg = /^.*[||/|<|>].*$/;
return !reg.test(str);
}
</script>[/align]
[align=left] [/align]

四、java中正则表达式的使用

[align=left][/align]
[align=left]如下,先要导入regex包,这个例子测试字符串是否是一个网址。[/align]
[align=left]package test;[/align]
[align=left]
import java.util.regex.Matcher;
import java.util.regex.Pattern;[/align]
[align=left][/align]
[align=left]public class test {
public static void main(String [] args) throws ClassNotFoundException, SQLException{
 Pattern pattern = Pattern.compile("[a-zA-z]+://[^//s]*");
 String phone = "http://www.sina.com";
 Matcher matcher = pattern.matcher(phone);
 if (matcher.find()){
  System.out.println("correspond");  
 }else{
  System.out.println("no correspond");
 }
}[/align]
 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息