初识正则表达式

一、字符串操作包括哪些?

search  查找

<script>
var str=‘abcdefd‘;
alert(str.search(‘a‘));  //返回0,从0开始
alert(str.search(‘bc‘)); //返回1,这个1是bc出现的位置,search只找第一次出现的位置
alert(str.search(‘g‘)); //返回要查找的字符串第一次出现的位置,没有返回-1
</script>

substring  获取子字符串

<script>
var str=‘abcdef‘;
alert(str.substring(1, 4)); //substring有两个参数,起始位置和结束位置,这里返回bcd(不是bcde),不包括结束位置的字母
// alert(str.substring(1));  只给第一个参数时,一直取到字符串结束,返回bcdef
</script>

charAt  获取某个字符

<script>
var str=‘abcdef‘;
alert(str.charAt(2)); //取第2个位置上的字符,返回c
</script>

split  分割字符串,获得数组;

<script>
var str=‘abc-12-u-qw‘;
var arr=str.split(‘-‘); //- 用引号包裹
alert(arr);   //返回一个数组,abc,12,u,qw
alert(arr[0]);  //返回数组的第0个abc
</script>

二、什么是正则表达式?如何创建正则对象?

规则、模式,强大的字符串匹配工具;

创建正则对象:

JS风格   —>      new RegExp(“a”, “i”)
perl风格 —>    /a/i
<script>
var str=‘abcdef‘;
var re=new RegExp(‘a‘);  //字符串时候包含a
//var re=new RegExp(‘a‘, ‘i‘);  //第一个参数是正则表达式本身,第二个参数也是一个字符串,i表示忽略大小写
var re=/a/i;  //简写  双斜杠里面的就是规则
alert(re.test(str));  //test方法,检验这个字符串是否符合正则表达式的规则;这里返回true
</script>

三、正则有几种选项?分别是什么意思?

g和i    g全局;i忽略大小写;

四、search、match、replace是做什么的?怎么用?

<script>
var str=‘asdf 443 vczxv 55‘;
var re=/\d/;   // \d在正则里表示数字
alert(str.search(re));  //返回5; 数字4在第5个位置;使用正则就很快找出来第一个数字出现的位置
</script>

match 获取匹配的项目

<script>
var str=‘sdf e443 fedef  55 66gg 333322312 dff 99‘;
var re=/\d+/g;  //g全局匹配  \d 表示“一个”数字 \d\d 表示“两个”数字。+ 量词 多个,任意长度;\d+ 表示多个数字;返回的是443,55,66...
// var re=/\d/g;   返回的是  4,4,3,5,5,6,6.... 拆开了
alert(str.match(re));  //match匹配
</script>

repalce  只替换第一个  replace(a,b)表示把a替换成b

<script>
var str=‘abacdAef‘;
alert(str.replace(‘a‘, ‘T‘));  //返回TbacdAef  只替换第一个
</script>
<script>
var str=‘abacdAef‘;
alert(str.replace(/a/gi, ‘T‘));  //替换全部 而且 忽略大小写
</script>
var re=/我们|你们|他们/g;  //中间的竖线表示 或 的意思
oTxt2.value=oTxt1.value.replace(re, ‘**‘);

五、字符类([])包括几种情况?

<script>
var str=‘1b2 abc 1c2 ee‘;
var re=/1[abc]2/g;  //1.方括号-->或者,表示a或者b或者c 单个字符 [a,b]表示a或者逗号或者b 2.方括号表示范围:[0-9]表示所有的数字;[a-z]表示所有的字母;[0-9a-z]结合起来用表示数字或者字母;
// \d 就是[0-9]的简写
alert(str.match(re));  //1b2,1c2
</script>

任意字符  [abc]   表示a或者b或者c 单个字符 [a,b]表示a或者逗号或者b

范围   [a-z]、[0-9]     [0-9]表示所有的数字;[a-z]表示所有的字母;[0-9a-z]结合起来用表示数字或者字母; \d 就是[0-9]的简写

排除   [^a]   除了a以外所有的内容

六、正则有哪些转义字符?分别是什么意思?

.(点)——任意字符

\d、\w、\s      \w   word  即 [a-z0-9_] 英文、数字、下划线     \s       space  空白

\D、\W、\S      \D和\d正好相反;表示[^0-9] 非数字;  \W  表示除了英文、数字、下划线;

<script>
var str=‘  fd rr  erre fff  ‘;
alert(str.replace(/\s+/g, ‘‘));  //去掉空格
</script>

七、什么是量词?各个量词分别有什么作用?

基本形式是:

{n,m}   最少n次,最多m次

{n,}   最少n次,最多不限;即:至少n次

{n}   正好n次

{,n}  最小不限,最多n次

{n,}        至少n次

*        任意次        相当于{0,}  不建议使用;

?        零次或一次        {0,1}

+        一次或任意次{1,}

<script>
var str=‘我的QQ是:258344567,你的是4487773吗?‘;
var re=/[1-9]\d{4,10}/g;  //挑出两个qq号
alert(str.match(re));
</script>

例子:校验邮箱:  若用中文写:    一串字母,数字,下划线   @  一串字母,数字   .   2到4个字母

var re=/^\[email protected][a-z0-9]+\.[a-z]{2,4}$/;  //^表示行首,$表示行尾  中间的必须符合要求 \.表示点本身
        if(re.test(oTxt.value))
        {
            alert(‘对了‘);
        }
        else
        {
            alert(‘你写错了‘);
        }

加行首和行尾是必要的;不加的话,表示包含规则的就匹配成功 --> 比如      中文[email protected]    这种也会匹配成功;因为中文[email protected]   中的部分符合规则;

通过行首和行尾,去掉首尾的空格:
<script>
var str=‘  ffe ww ee fewf   ‘;
var re=/^\s+|\s+$/g;  //去掉首尾的空格,中间的空格保留
alert(‘(‘+str.replace(re, ‘‘)+‘)‘);
</script>

检测中文:

<script>
var str=‘asdfb 34啊 +_=45 ‘;
var re=/[\u4e00-\u9fa5]/;  //检测是否有中文存在;u表示utf8编码;4e00表示第一个汉字,9fa5是最后一个
alert(re.test(str));   //true,str中有中文
</script>

单词边界   \b

完美版getByClass

<script>
function getByClass(oParent, sClass)
{
    var aEle=oParent.getElementsByTagName(‘*‘);
    var aResult=[];
    var re=new RegExp(‘\\b‘+sClass+‘\\b‘, ‘i‘);   // \b是单词边界
    var i=0;
     
    for(i=0;i<aEle.length;i++)
    {
        if(re.test(aEle[i].className))
        {
            aResult.push(aEle[i]);
        }
    }
    return aResult;
}
</script>
时间: 2024-10-14 05:45:24

初识正则表达式的相关文章

Linux的文本处理工具grep及初识正则表达式

一).Linux的三大文本处理之GREP: GREP(Global search REgular expression and Print out the line,全面搜索正则表达式并把行打印出来):在给出文件列表或标准输出后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本.----摘自于维基百科 GREP家族包括: grep: egrep:支持扩展正则表达式的grep,等同于grep -E. fgrep:fixed grep或fast grep,不支

初识正则表达式二

原文地址:https://www.cnblogs.com/whgaw156/p/12057067.html

有shi以来最详细的正则表达式入门教程

原文:有shi以来最详细的正则表达式入门教程 本篇文章文字内容较多,但是要学习正则就必须耐心读下去,正则表达式是正则表达式其实并没有想像中的那么困难,但是想要熟练的掌握它,还是需要下功夫勤加练习的.这里讲一些正则表达式的语法和学习方法,大家还要多参考前辈们写的正则表达式,才能达到熟练精通的地步. 一.正则表达式到底是什么东西?                                                  正则表达式,又称正规表示法.常规表示法(英语:Regular Expre

&lt;&lt;鬼斧神工之正则表达式&gt;&gt;笔记整理

第1章 初识正则表达式 正则表达式定义 正则表达式是一种字符串搜索和匹配的工具 正则表达式应用举例 手机输入法 Windows文件搜索 Linux列出文件命令 网站用户注册 第2章 正则表达式函数解析   PHP中常用的正则表达式函数 $pattern = 正则表达式 $subject = 匹配的目标函数 preg_match($pattern, $subject) preg_match_all($pattern, $subject, array &$matches) Code: $patter

Python(八) 正则表达式与JSON

一.初识正则表达式 正则表达式 是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配 快速检索文本.实现替换文本的操作 json(xml) 轻量级 web 数据交换格式 import re a='C|C++|Java|C#||Python|Javascript' r= re.findall('Python',a) print(r) if len(r) > 0: print('字符串中包含Python') else: print('No') ['Python'] 字符串中包含P

Ubuntu学习——第一篇

一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的“ubuntu”一词,意思是“人性”.“我的存在是因为大家的存在”,是非洲传统的一种价值观. Ubuntu的目标在于为一般用户提供一个最新同时又相当稳定,主要以自由软件建构而成的操作系统.Ubuntu目前具有庞大的社区力量支持,用户可以方便地从社区获得帮助. 二. 安装 ubuntu官方网站: http://www.ubuntu.com/    对应 中

PHP100教程资料 1~45讲

链接:http://pan.baidu.com/s/1hr7r5WC 密码:xjtp? 目录 第一讲:PHP环境搭配和代码调试 1 第二讲:PHP基本语法和数据类型 3 (第三讲) 常用PHP运算类型介绍与应用 5 1.算术运算 5 2.赋值运算 5 3.比较运算 5 4.逻辑运算 5 5.递增递减运算 5 (第四讲) PHP条件语句的介绍与应用 7 1.if 条件语句 7 2.switch 条件语句 7 (第五讲) PHP循环语句的介绍与应用 8 1.break n 循环控制语句 8 2.do

Ubuntu学习

一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的"ubuntu"一词,意思是"人性"."我的存在是因为大家的存在",是非洲传统的一种价值观. Ubuntu的目标在于为一般用户提供一个最新同时又相当稳定,主要以自由软件建构而成的操作系统.Ubuntu目前具有庞大的社区力量支持,用户可以方便地从社区获得帮助. 二. 安装 ubuntu官方网站: http:

相关Linux命令的学习

相关命令如下: cd                   切换目录 cd # 回到当前用户的家目录 # - 可用于表示用户家目录 cd /etc # 切换到/etc目录cd - # 切换到上一次的目录 pwd            查看当前的工作路径 创建目录: # mkdir 目录名 mkdir my_dir # - p 参数 : 递归创建目录,用于同时创建多级目录 mkdir a/b/c/d 获取帮助                -h    --help     info      man