您的位置:首页 > 其它

正则表达式的一些小例子,从简单到复杂

2012-02-10 16:01 459 查看
下面是一些正则表达式的小例子,说明在注释中

学习来源 http://manual.phpv.net/regular_expression.html

var str = "history";
console.log(/hi/.test(str)); // true
// \b是正则表达式规定的一个元字符
// 代表着单词的开头或结尾,也就是单词的分界处
console.log(/\bhi\b/.test(str)); // false	\b精确查找hi这个词

str = "hi lili and lucy";
console.log(/\bhi\b/.test(str)); // true

// .是另一个元字符,匹配除了换行符以外的任意字符。
// *同样是元字符,不过它代表的不是字符,也不是位置,而是数量
// 它指定*前边的内容可以连续重复出现任意次以使整个表达式得到匹配
// 因此,.*连在一起就意味着任意数量的不包含换行的字符。
console.log(/\bhi\b.*\blucy\b/.test(str)); // true

str = "010-12345678";
// 以0开头,然后是两个数字,然后是一个连字号"-",最后是8个数字
console.log(/0\d\d-\d\d\d\d\d\d\d\d/.test(str)); // true
// 为了避免那么多烦人的重复,我们也可以这样写这个表达式:0\d{2}-\d{8}
console.log(/0\d{2}-\d{8}/.test(str)); // true

// \ba\w*\b匹配以字母a开头的单词——先是某个单词开始处(\b)
// 然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)
console.log(/\ba\w*\b/.test("a234DS")); // true

// \d+匹配1个或更多连续的数字
// 这里的+是和*类似的元字符
// 不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次
console.log(/\d+/.test("abc")); // false
console.log(/\d*/.test("abc")); // true

// \b\w{6}\b 匹配刚好6个字母/数字的单词
console.log(/\b\w{6}\b/.test("abc12")); // false
console.log(/\b\w{6}\b/.test("abc123")); // true

// 必须为5位到12位数字
console.log(/^\d{5,12}$/.test("123456")); // true


表1.常用的元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此,你应该使用\.和\*。当然,要查找\本身,你也得用\\.

例如:unibetter\.com匹配unibetter.com,C:\\Windows匹配C:\Windows。

表2.常用的限定符

代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: