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. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="re ......
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head ......
去除字符串左右两端的空格,在
vbscript
里
面可以轻松地使用
trim
、
ltrim
或
rtrim
,但在
js
中却没有这
3
个内置方法,需要手工编写。下面的实现方法是用到了正则表达式,效率不错,并把这三个方法加入
String
对象的内置方法中去。
<mce:script type="tex ......
经常会在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组.
if(document.mylist.length != "undefined" ) {} 这个用法有误.
正确的是 if( typeof(document.mylist.length) != "undefined" ) {}
或 if( !isNaN(document.mylist.length) ) {}
typeof ......