JavaScript Regular Expressions
Upcoming SlideShare
Loading in...5
×
 

JavaScript Regular Expressions

on

  • 1,890 views

JavaScript Regular Expressions

JavaScript Regular Expressions

Statistics

Views

Total Views
1,890
Views on SlideShare
1,221
Embed Views
669

Actions

Likes
0
Downloads
9
Comments
0

6 Embeds 669

http://www.cssoul.com 654
http://feed.feedsky.com 10
http://cache.baidu.com 2
url_unknown 1
http://www.cssoul.com} {290277324|||pingback 1
http://xianguo.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

JavaScript Regular Expressions JavaScript Regular Expressions Presentation Transcript

  • Java Script 正则表达式 张军
  • 使用方法
    • 创建对象
    • var r = new RegExp(" 表达式 ");
    • 直接量
    • var r = / 表达式 /;
  • 修饰符
    • i 执行对大小写不敏感的匹配。
    • g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
    • m 执行多行匹配。
    var str = "taobao UED"; var test = /ued/i; // var test = new RegExp("ued", "i"); alert(str.match(test));
  • RegExp 属性
    • global RegExp 对象是否具有标志 g 。
    • ignoreCase RegExp 对象是否具有标志 i 。
    • lastIndex 一个整数,标示开始下一次匹配的字符位置。
    • multiline RegExp 对象是否具有标志 m 。
    • source 正则表达式的源文本。
  • lastIndex
    • var r = /d/g;
    • alert(r.test('abc1'));
    • alert(r.lastIndex);
    • alert(r.test('ab1'));
    • alert(r.lastIndex);
    • alert(r.test('a1'));
    • alert(r.lastIndex);
    //true //4 //false //0 //true //2 一个正则表达式实例多次 test 或 exec 时,它的 lastIndex 将每一次都被更改。 不具有标志 g 和不表示全局模式的 RegExp 对象不能使用 lastIndex 属性
  • 常用元字符
    • . 匹配除换行符以外的任意字符
    • w 匹配字母或数字或下划线或汉字
    • s 匹配任意的空白符
    • d 匹配数字
    • b 匹配单词的开始或结束
    • ^ 匹配字符串的开始
    • $ 匹配字符串的结束
  • RegExp 方法
    • compile 编译正则表达式。
    • exec 检索字符串中指定的值。返回找到的值,并确定其位置。
    • test 检索字符串中指定的值。返回 true 或 false 。
  • Exec 的使用
    • var str = "taobao UED, taobao mobile UED.";
    • var text = new RegExp("UED","g");
    • var result;
    • while ((result = text.exec(str)) != null) {
    • alert(result);
    • alert (text.lastIndex);
    • }
    //UED //10 //UED //29 exec() 返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null 。
  • 支 RegExp 的 String 对象的方法
    • search 检索与正则表达式相匹配的值。
    • match 找到一个或多个正则表达式的匹配。
    • replace 替换与正则表达式匹配的子串。
    • split 把字符串分割为字符串数组。
  • Match 的使用
    • 检索一个字符串
      • var a = '20663:29447';
      • var b = ':';
      • if(a.match(b)){
      • alert(true);
      • }
    • 检索一个正则表达式的匹配
      • var a = '20663:29447:123123';
      • if(a.match(/:+/g)){
      • alert(true);
      • }
  • 限定符
    • ? 出现 0 次或 1 次
    • * 出现 0 次或多次
    • + 出现 1 次或多次
    • {n} 一定出现 n 次
    • {n,m} 至少出现 n 次,最多出现 m 次
    • {n,} 至少出现 n 次
  • 如何 匹配元字符 ?
    • 使用转义符 “ ”
    • eg
      • var str="c*";
      • var patt1=/c*/g;
      • document.write(str.match(patt1));
  • 控制文本框输入价格
    • $('#J_FilterPrice input').keyup(function(){
    • var _val =$(this).val();
    • if(!/^d+.?d*$/.test(_val)){
    • _val = parseFloat(_val)
          • $(this).val(isNaN(_val) ? '' : _val);
    • }
    • });
  • 贪婪与非贪婪限定符
    • 贪婪 匹配:
    • ?
    • *
    • +
    • {n}
    • {n,m}
    • {n,}
    • 非 贪婪 匹配:
    • ??
    • *?
    • +?
    • {n}?
    • {n,m}?
    • {n,}?
  • 贪婪与非贪婪的匹配过程
    • var s = 'http://www/hello/world.php';
    • var r1 = /.*//g;
    • var r2 = /.*?//g;
    • alert(s.match(r1));
    • alert(s.match(r2));
    // 非贪婪匹配 从第一个字符开始匹配 如果失败,读入下一个字符继续 http:/, /, www/, hello/ // 贪婪匹配 匹配整个字符串 从后逐一舍去最后一个字符继续 http://www/hello/
  • Thank you !