[转载]JavaScript - 正则表达式

None.gif JavaScript  -  正则表达式 
None.gif    正则表达式(regular expression)对象包含一个正则表达式模式(pattern)。它具有用正则表达式模式去匹配或代替一个串(string)中特定字符(或字符集合)的属性(properties)和方法(methods)。
None.gif
None.gif    正则表达式构造函数: 
new  RegExp(“pattern“[,“flags“]);
None.gif    参数说明:
None.gif    pattern 
--  一个正则表达式文本
None.gif    flags 
--  如果存在,将是以下值:
None.gif    g: 全局匹配
None.gif    i: 忽略大小写
None.gif    gi: 以上组合
None.gif
None.gif    在构造函数中,一些特殊字符需要进行转意(在特殊字符前加“\“)。正则表达式中的特殊字符:
None.gif    字符  含意
None.gif    \ 转意,即通常在“\“后面的字符不按原来意义解释,如
/ b / 匹配字符“b“,当b前面加了反斜杆后 / \b / ,转意为
None.gif
None.gif    匹配一个单词的边界。
None.gif    
- -
None.gif    对正则表达式功能字符的还原,如“
* “匹配它前面元字符0次或多次, / a */ 将匹配a,aa,aaa,加了“\“后, / a\ */
None.gif
None.gif    将只匹配“a
* “。
None.gif    
^   匹配一个输入或一行的开头, /^ a / 匹配“an A“,而不匹配“An a“
None.gif    $  匹配一个输入或一行的结尾,
/ a$ / 匹配“An a“,而不匹配“an A“
None.gif    
*   匹配前面元字符0次或多次, / ba */ 将匹配b,ba,baa,baaa
None.gif    
+   匹配前面元字符1次或多次, / ba */ 将匹配ba,baa,baaa
None.gif    
?   匹配前面元字符0次或1次, / ba */ 将匹配b,ba
None.gif    (x)  匹配x保存x在名为$
1 dot.gif$9的变量中
None.gif    x
| y  匹配x或y
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {n}   精确匹配n次
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {n,}   匹配n次以上
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {n,m}   匹配n - m次
None.gif    [xyz]  字符集(character set),匹配这个集合中的任一一个字符(或元字符)
None.gif    [
^ xyz]  不匹配这个集合中的任何一个字符
None.gif    [\b]  匹配一个退格符
None.gif    \b  匹配一个单词的边界
None.gif    \B  匹配一个单词的非边界
None.gif    \cX  这儿,X是一个控制符,
/ \cM / 匹配Ctrl - M
None.gif    \d  匹配一个字数字符,
/ \d /   =   / [ 0 - 9 ] /
None.gif    \D  匹配一个非字数字符,
/ \D /   =   / [ ^ 0 - 9 ] /
None.gif    \n  匹配一个换行符
None.gif    \r  匹配一个回车符
None.gif    \s  匹配一个空白字符,包括\n,\r,\f,\t,\v等
None.gif    \S  匹配一个非空白字符,等于
/ [ ^ \n\f\r\t\v] /
None.gif    \t  匹配一个制表符
None.gif    \v  匹配一个重直制表符
None.gif    \w  匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配“$
5.98
None.gif
None.gif    中的5,等于[a
- zA - Z0 - 9 ]
None.gif    \W  匹配一个不可以组成单词的字符,如[\W]匹配“$
5.98 “中的$,等于[ ^ a - zA - Z0 - 9 ]。
None.gif
None.gif
None.gif    说了这么多了,我们来看一些正则表达式的实际应用的例子:
None.gif    HTML代码的屏蔽
ExpandedBlockStart.gifContractedBlock.gif     
function  mask_HTMLCode(strInput)  dot.gif {
InBlock.gif       
var myReg = /〈(\w+)〉/;
InBlock.gif       
return strInput.replace(myReg, “〈$1〉“);
ExpandedBlockEnd.gif     }

None.gif    E
- mail地址验证:
ExpandedBlockStart.gifContractedBlock.gif     
function  test_email(strEmail)  dot.gif {
ExpandedSubBlockStart.gifContractedSubBlock.gif      
var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]dot.gif{2,3}$/;
InBlock.gif      
if(myReg.test(strEmail)) return true;
InBlock.gif      
return false;
ExpandedBlockEnd.gif     }

None.gif
None.gif
None.gif    正则表达式对象的属性及方法:
None.gif      预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext,
None.gif
None.gif    rightContext和$1到$
9 。其中input和multiline可以预设置。其他属性的值在执行过exec或test方法后被根据
None.gif
None.gif    不同条件赋以不同的值。许多属性同时拥有长和短(perl风格)的两个名字,并且,这两个名字指向同一个值。(
None.gif
None.gif    JavaScript模拟perl的正则表达式)
None.gif
None.gif    正则表达式对象的属性:
None.gif    属性 含义
None.gif    $
1 dot.gif$ 9  如果它(们)存在,是匹配到的子串
None.gif    $_ 参见input
None.gif    $
*  参见multiline
None.gif    $
&  参见lastMatch
None.gif    $
+  参见lastParen
None.gif    $` 参见leftContext
None.gif    $’’          参见rightContext
None.gif    constructor     创建一个对象的一个特殊的函数原型
None.gif    global        是否在整个串中匹配(bool型)
None.gif    ignoreCase     匹配时是否忽略大小写(bool型)
None.gif    input        被匹配的串
None.gif    lastIndex      最后一次匹配的索引
None.gif    lastParen      最后一个括号括起来的子串
None.gif    leftContext     最近一次匹配以左的子串
None.gif    multiline      是否进行多行匹配(bool型)
None.gif    prototype      允许附加属性给对象
None.gif    rightContext    最近一次匹配以右的子串
None.gif    source        正则表达式模式
None.gif    lastIndex      最后一次匹配的索引
None.gif
None.gif    正则表达式对象的方法:
None.gif    方法 含义
None.gif    compile       正则表达式比较
None.gif    exec        执行查找
None.gif    test        进行匹配
None.gif    toSource      返回特定对象的定义(literal
None.gif
None.gif    representing),其值可用来创建一个新的对象。重载Object.toSource方法得到的。
None.gif    toString      返回特定对象的串。重载Object.toString方法得到的。
None.gif    valueOf       返回特定对象的原始值。重载Object.valueOf方法得到
None.gif
None.gif
None.gif    例子:
None.gif    〈script language 
=  “JavaScript“〉
None.gif    
var  myReg  =   / (w + )s(w + ) / ;
None.gif    
var  str   =  “John Smith“;
None.gif    
var  newstr  =  str.replace(myReg, “$ 2 , $ 1 “);
None.gif    document.write(newstr);
None.gif    〈
/ script〉
None.gif    将输出“Smith, John“  
None.gif
None.gif 
None.gif
None.gif 
None.gif
None.gifonkeyup
= " this.value=this.value.replace(/[^0-9\+]/g,'') "  onafterpaste = " this.value=this.value.replace(/[^0-9\+]/g,'') "
None.gif
ExpandedBlockStart.gifContractedBlock.gif
function  checkFloat() dot.gif {
InBlock.gif
var result=true;
InBlock.gifalert(event.keyCode);
InBlock.gifresult 
= (event.keyCode == 9 ||event.keyCode == 45 ||
InBlock.gifevent.keyCode 
== 46 || event.keyCode == 107 ||
InBlock.gifevent.keyCode 
== 37 ||
InBlock.gifevent.keyCode 
== 39 || (event.keyCode == 187 && event.shiftKey == true||
InBlock.gif(event.ctrlKey 
&& (vent.keyCode == 67 || vent.keyCode == 86)) ||
InBlock.gifevent.keyCode 
== 8 ||
InBlock.gifevent.keyCode 
== 110 ||
InBlock.gifevent.keyCode 
== 190 ||
InBlock.gif(event.keyCode
>=96 && event.keyCode<=105||
InBlock.gif(event.keyCode
>=48 && event.keyCode<=57));
InBlock.gifevent.returnValue
=result;
ExpandedBlockEnd.gif}

None.gif

转载于:https://www.cnblogs.com/amethyst8989/archive/2006/12/19/596391.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值