javascript的正则表达式
正则表达式一般有以下功能:
测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证
替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字
根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字
在js中可以通过以下方式建立以个正则表达式:
1. var regex = /pattern/flag;
2. var regex = new RegExp("pattern", "flag");
参数:
pattern(模式) :表示正则表达式的匹配模式
flag(匹配的方式):在以上两种创建表达式的方式中,flag的值不是必须指定的,如果要制定,它有以下值:
g: global match(全定匹配)
i: ignore case(忽略大小写)
m: multiline(多行查找)
可以组合使用,如果用gi,即both global match and ignore case,匹配所有可能的值,也忽略大小写
使用RegExp构造函数与使用正则表达式字面量创建正则表达式注意几点:
var str = "\?";
alert(str); //只会输出?
var re = /\?/; //将匹配?
alert(re.test(str)); //输出true
re = new RegExp("\?"); //出错,因为这相当于re = /\?/
re = new RegExp("\\?"); //正确,将匹配?
alert(re.test(str));//输出true
当我们创建好匹配表达式后,就可以对字符串操作了:
test方法:
var str = "43432dsads3424";
regex.test(str);
该语句返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。如果存在则返回 true,否则就返回 false。
exec,用正则表达式模式在字符串中运行查找,返回包含查找结果的一个数组
var src = "hello32432";
var re = new RegExp("[0-9]","gi");
while ((arr = re.exec(src)) != null) {
document.write(arr); //输出得到的数组
}
另外,字符串本身也提供一些方法,可以结合正则表达式,对自身做相应的操作:
match(regex): 是否匹配正则表达式
var str = "hello world, hello kitty";
var regex = /hello/gi;
alert(str.match(regex));
replace:根据相应的正则表达式对字符串进行替换:
re = /apples/gi;
str = "Apples are round, and apples are juicy.";
//将str中所有匹配apples的替换成oranges
newstr=str.replace(re, "oranges");
document.write(newstr);
如果要想得到匹配的个数:
相关文档:
1.对于数组,我们可以自己写一个indexOf()方法:
[].indexOf || (Array.prototype.indexOf = function(v){
for(var i = this.length;i-- && this[i] !== v;);
return i; });
使用: var array = new Array();
array = ...;
if(array.ind ......
Event属性和方法:
1. type:事件的类型,如onlick中的click;
2. srcElement/target:事件源,就是发生事件的元素;
3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;(firefox中 0代表左键,1代表中间键,2代表右键) ......
第一步:在IE的“Internet设置”中选择“高级”——“安全”——“启用集成windows身份验证”。
第二步:在需要调试的页面的脚本中加上debugger; 然后运行这个页面,就会在这里停下来
例如:
function BtnSubmit_Click()
{
var aaa;
aaa='aaa';
debugg ......
"#"包含了一个位置信息
默认的锚点是#top 也就是网页的上端
而javascript:void(0) 仅仅表示一个死链接
这就是为什么有的时候页面很长浏览链接明明是#可是跳动到了页首,而javascript:void(0) 则不是如此
所以调用脚本的时候最好用void(0)
或者<input onclick>
<div onclick>等
打开新窗口链接的几种办法 ......