RegExp是正则表达式的缩写。当你检索某个文本时,可以使用一种模式来描述要检索的内容.RegExp就是这种模式。
简单(普通)模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析,格式检查,替换等等。您可以规定字符串中的检索位置,以及要检索的字符类型,等等。
// var reg=/white/;
var reg=/表达式/附加参数;
// var reg=new RegExp("表达式","附加参数")
var reg=new RegExp("white"); // 当您使用该 RegExp 对象在一个字符串中检索时,将寻找的是字符 "white"
var reg=/china/;
var reg=/abc8/;
var reg=/^\w+$/;
var reg=/^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$/;
test()方法检索字符串中的指定值。返回值是true或false
例子
var reg = new RegExp("e");
document.write(reg.test("The is javascript"));
exec()方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回null。
例子
var reg = new RegExp("e");
document.write(reg.exec("The is javascript"));
compile()方法用于改变RegExp,既可以改变检索模式,也可以添加或删除第二个参数。
例子
var reg=new RegExp("e");
document.write(reg.test("The is javascript"));
reg.compile("d");
document.write(reg.test("The is javascript"));
修饰符 | 描述 |
---|---|
一世 | 执行对大小写不敏感的匹配。 |
G | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
米 | 执行多行匹配。 |
克使用例子
var str = "hello 123456";
var pattern=/\d/g;
document.write(str.match(pattern));
表达式 | 描述 |
---|---|
[ abc] | 查找方括号之间的任何字符。 |
[[ abc]](http://www.w3school.com.cn/jsref/jsref_regexp_charset_not.asp) | 查找任何不在方括号之间的字符。 |
[0-9] | 查找任何从0至9的数字。 |
[AZ] | 查找任何从小写a到小写z的字符。 |
[AZ] | 查找任何从大写A到大写Z的字符。 |
[AZ] | 查找任何从大写A到小写z的字符。 |
[adgk] | 查找给定集合内的任何字符。 |
[ adgk] | 查找给定集合外的任何字符。 |
(红\ | 蓝色\ |
[]使用例子
var str = "hello 123456 abc";
var pattern = new RegExp(/[abc]/g);
document.write(str.match(pattern));
符号 | 描述 |
---|---|
/ ...... / | 代表一个模式的开始和结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
\ S | 任何空白字符 |
\ S | 任何非空白字符 |
\ d | 匹配一个数字字符,等价于[0-9] |
\ d | 除了数字之外的任何字符,等价于[ 0-9] |
\ W | 匹配一个数字,下划线或字母字符,等价于[A-ZA-Z0-9_] |
\ W | 任何非单字字符,等价于[ a-zA-z0-9_] |
。 | 除了换行符之外的任意字符 |
// 通过\s表达式匹配空白字符
var str = "hello123456 abc";
var pattern = new RegExp(/\s/g);
document.write(pattern.test(str));
// 匹配非空白字符
var str = "hello123456 abc";
var pattern = new RegExp(/\S/g);
document.write(str.match(pattern));
符号 | 描述 |
---|---|
{N} | 匹配前一项ñ次 |
{N,} | 匹配前一项ñ次,或者多次 |
{N,M} | 匹配前一项至少Ñ次,但是不能超过米次 |
* | 匹配前一项0次或多次,等价于{0,} |
+ | 匹配前一项1次或多次,等价于{1,} |
? | 匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1} |
\ |
邮箱正则例子
var email = "[email protected]";
var reg = new RegExp(/^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$/);
console.info(reg.test(email));
方法 | 描述 |
---|---|
比赛 | 找到一个或多个正则表达式的匹配 |
搜索 | 检索与正则表达式相匹配的值 |
更换 | 替换与正则表达式匹配的字符串 |
分裂 | 把字符串分割为字符串数组 |
document.write("425000".match(/^\d{6}$/));
var reg = new RegExp(/0?(13|14|15|18|17)[0-9]{9}/);
document.write(reg.test("13800138000"));
自己动手写个验证身份证号码的正则表达式
####如何使用下拉框来实现现级效果
下拉框需要用到HTML中的两个标签,一个是select
,一个是option
,当用户选择省份下拉框是通过平变化事件来改变城市信息。
类别 | 名称 | 描述 |
---|---|---|
事件 | 平变化 | 当改变选项时调用的事件 |
方法 | 加() | 向下拉列表中添加一个选项 |
属性 | 选项[] | 返回包含下拉列表中的所有选项的一个数组 |
属性 | 的selectedIndex | 设置或返回下拉列表中被选项目的索引号 |
属性 | 长度 | 返回下拉列表中的选项的数目 |
function get(select) {
console.info("选择了第" + select.selectedIndex + "条");
console.info("总共" + select.length + "条");
}
type="button" value="添加" onclick="addOption();">
function addOption() {
var clazz = document.getElementById("class");
clazz.add(new Option("1704班", 1704));
}
var 数组名称 = new Array(size);
var fruit= new Array("apple", "orange", " peach","bananer");
var fruit = new Array(4);
fruit [0] = "apple";
fruit [1] = "orange";
fruit [2] = "peach";
fruit [3] = "bananer";
类别 | 名称 | 描述 |
---|---|---|
属性 | 长度 | 设置或返回数组中元素的数目 |
方法 | 加入() | 把数组的所有元素放入一个字符串,通过一个的分隔符进行分隔 |
方法 | concat() | 合并两个数组 |
方法 | sort() | 对数组的元素进行排序 |
var regions = new Array();
regions['湖南省'] = ['长沙市', '岳阳市', '永州市'];
regions['广东省'] = ['深圳市', '广州市', '韶关市', '湛江市'];
// 加载省份
function loadRegion() {
var region = document.getElementById('region');
var j = 0;
for (var i in regions) {
region.add(new Option(i));
}
}
// 加载城市
function loadCity(region) {
var city = document.getElementById('city');
// 清除之前的所有option
city.options.length = 0;
var citys = regions[region.value];
for (var i = 0; i < citys.length; i++) {
city.add(new Option(citys[i]));
}
}