邮箱:
var regm = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(/.[a-zA-Z0-9_-]+)+$/;
//验证Mail的正则表达式,^[a-zA-Z0-9_-]:开头必须为字母,下划线,数字,
if (!mail.match(regm))
{
alert("邮箱地址格式错误或含有非法字符!/n请检查!");
document.publish.mail.select();
return false;
}
无符号字符串:
/^[^/s]{1}[^-_/~!@#/$%/^&/*/./(/)/[/]/{/}<>/?/'/"]*$/
URL:
/^http:[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^<>/"/"])*$/
匹配中文字符的正则表达式: [/u4e00-/u9fa5]
匹配双字节字符(包括汉字在内):[^/x00-/xff]
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^/x00-/xff]/g,"aa").length;}
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
/w | 匹配字母或数字或下划线或汉字 |
/s | 匹配任意的空白符 |
/d | 匹配数字 |
/b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
代码/语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
代码/语法 | 说明 |
---|---|
/W | 匹配任意不是字母,数字,下划线,汉字的字符 |
/S | 匹配任意不是空白符的字符 |
/D | 匹配任意非数字的字符 |
/B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |
POSIX格式的正则表达式
[:alnum:] 表示数字字符 [0-9a-zA-Z]
[:alpha:] 表示字母 [a-zA-Z]
[:blank:] 空格和制表符 [ /t]
[:space:] 空白(包括换行,回车,制表符,空格,竖向制表符) [/n/r/t /x0B]
[:cntrl:] 控制符 [/x01-/x1F]
[:digit:] 数字 [0-9]
[:lower:] 小写字母 [a-z]
[:upper:] 大写字母 [A-Z]
[:xdigit:] 十六进制字符 [0-9a-fA-F]
[:ascii:] ASC2 [/x01-/x7F]
1. <a href="#">test</a>
2. <a href="javascript:void(0);">test</a>
1有位置信息,会跳到页面顶部,改成"#;"可解决
2就是一个死链,所以用2比较好
IE下无提示关闭本页的办法:
window.opener = "";
window.open("","_self");
window.close();
PHP下的汉字正则
if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str)) //GB2312汉字
if(!preg_match("/^[/x80-/xff]+$/",$str)) //UTF-8汉字
ps:判断过程中,中文输入法下的标点符号都属于中文
发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.
而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志)。