正则表达式
定义
1、显式定义: 一眼就看明白
var 变量名 = new RegExp("正则表达式模式");
2、隐式定义: 常用,简单。没那么明显,大家可能一眼没有看出
注意:开头和结尾都必须是斜杠“/”,且不需要使用双引号括起来的
var 变量名 = /正则表达式模式/;
匹配数字: [0-9] 或 \d
匹配字母: [a-z] [A-Z] 或 [a-zA-Z]
以指定字符开头: ^
例如:^[0-9]表示以数字开头
以指定字符结尾: $
例如:[a-z]$表示以小写字母结尾
* 匹配前面的子表达式零次或多次
例如:[a-zA-Z]*表示字母可以出现零次或多次
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式零次或一次
{n} 匹配n次
{n,} 至少匹配n次
{n,m} 至少匹配n次,最多匹配m次
修饰符
描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
用法
(1)new RegExp("regexp","修饰符")
(2)/regexp/修饰符
-->
例:
<form id='myform1' action="http://www.shsxt.com" method="get" >
姓名:<input type="text" name="uname" id="uname" /> <br />
年龄:<input type="text" name="upwd" id="upwd" /> <br />
<input type="button" value="登录" onclick="login()" />
</form>
<script type="text/javascript">
/*验证用户名*/
/**
以字母开头:^[a-zA-Z]
以字母或数字结尾:[a-zA-Z0-9]$
中间:[a-zA-Z0-9-_]{4,10}
*/
var reg = /^[a-z][a-z0-9-_]{4,10}[a-z0-9]$/i;
/*验证年龄*/
/**
以1-9数字开头:^[1-9]
以0-9结尾(0次或1次):[0-9]?
*/
var reg2 = /^[1-9][0-9]?$/;
function login() {
// 获取姓名文本框的值
var uname = document.getElementById("uname").value;
var flag = reg.test(uname);
if (flag) {
alert("姓名可用!");
} else {
alert("姓名不可用!");
}
}
</script>