javascript 正则表达式入门到高级-01

来源:互联网 发布:平板windows系统怎么样 编辑:程序博客网 时间:2024/04/30 01:12

 引言:查找下面字符串中的数字。顺便看看这个查找思路比较好。

var str = '3e -f55,ac78 907A 3 o03';
var arr =[];
var tmp='';
for(var i=0;i<str.length; i++)
 {
  if(str.charAt(i)<= '9'&&str.charAt(i)>='0')
    {
     tmp+=str.charAt(i);
    }
  else
    {
    if(tmp)
     {
     arr.push(tmp);
     tmp='';
     }    
     }
 }
if(tmp)
{
  arr.push(tmp);
  tmp='';
}

运行结果:'3,55,78 ,907,3,03'

var str = '3e -f55,ac78 907A 3 o03';
var re = /\d+/g;
alert( arr.match(re) );

运行结果:'3,55,78 ,907,3,03'
总结:对比上面的示例,显而易见。

复习回顾   数组字符串操作可以见传送门

1.以前学过的关于字符串操作:

(1)--->search

很简单就是查询字符的操作,不过很常见。

arr = '123 45jn ads c b67';
alert(arr.search('a')); //

运行结果:--->: 9
分析:只找第一次出现的位置,查找不存在的值返回-1;
(2)-->substring

arr = '123 45jn ads c b67';
alert(arr.substring(0,3));//这个是有起点和终点,从0开始到3结束 3位长度 -->123;


分析:不包括最后一个字符;
(3)-->charAt

arr = '123 45jn ads c b67';
alert(arr.charAt(2)); // 查找第二个字符串


运行结果:--->: 3
(4)-->split

arr = '010-824-437-8';
alert(arr.split('-'));

//注意,split还有一个参数是分割几次--arr.split('-',2)

运行结果-->010,824

运行结果:--->: '010,824,437,8';
【概述】:正则表达式就是用来规定字符串的规则;很简单,就是对字符串的操作。
(1):正规写法:
var arr = 'ab cd edA';
var re = new RegExp('a','i'); // 构造函数
(2)一般写法:我们知道,一般写法总是比较简单。
   var re = /a/i; 和上面的意思一样,只不过是在写法上简单了许多。
(3)

var arr = 'aa 33 4 f4 67 c';
var re = /\d+/g;
alert(arr.match(re));

运行结果:--->: 33 4 4 67;
分析
    a) match-->语法stringObject.match(regexp) 
                    -->说明:match() 方法将检索字符串 stringObject,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g 
b):\d-->是字符串中的数字,不指定默认一般是第一个数字。
     c):g-->是全局匹配的意思,也就是说在所有的字符串种查找含有数字的。 
     d):+-->长度至少是1
(4)简易过滤敏感词;

var arr = '杀人 抢劫 剽窃 看书 看电影 看日本电影';

var re = /杀人|抢劫|剽窃/g;

alert(arr.replace(re,'***'));


运行结果:--->: *** ***  *** 看书 看电影   看日本电影';
分析: a):  |  -->是或者地意思。
          b):replace()-->:用于替换

arr = 'abcjdahdaygad';
re = /a/g;
alert(arr.replace(re,'A'));

运行结果:--->: AbcjdAhdaygAd
(1):转义:

  a):   \d  -->数字[0-9];   \D--->[^0-9]  除了0-9,与小写刚好相反。
  b)   -->除了换行符以外的任意字符      \.-->输出点本身;    eg:   .+        -->许多个任意的字符。
  c)    \w -->  [a-z0-9_]字母数字下划线 、\W和上面一样。
  d)    \s -->空格    \S;除了空白字符意外的东西;\S和上面一样.
  e)    \b -->单词边界;

分析:a):e[abc]f-->表示或者,分开写:eaf、 ebf 、ecf。里面的所有东西都是或的范围eg:[0-9] [a-z];[0-9a-z];都表示的是其中的一个,不是整体,eg[123,456]代表1或者2或者3或者逗号或者……;

           b):[^a]--除了a以外,^很常见,表示的就是除...以外。

0 0
原创粉丝点击