一、RegExp对象方法:

  1.exec()   检索字符串中指定的值,并返回值(找不到返回null)

  效果:

<textarea name="content" id="content" cols="20" rows="10"></textarea><input type="button" onclick="regTest()" value="查找">
<script type="text/javascript">
function regTest(){
var content = document.getElementById("content").value;
var regExp = /(\d){4}/gi;
while(res = regExp.exec(content)){
console.log("找到"+res[0]);
} } </script>

  2.test()     检索字符串中指定值,返回true或false

效果:

<textarea name="content" id="content" cols="20" rows="10"></textarea><input type="button" onclick="regTest()" value="查找">
<script type="text/javascript">
function regTest(){
var content = document.getElementById("content").value;
var regExp = /(\d){4}/gi;
if(regExp.test(content)){
console.log("找到了");
} } </script>

3.属性

  index、leftContext 、rightContext

<script type="text/javascript">
var str= "abcd4564hui454s0ss4894d7937asda";
var myreg = /(\d){4}/gi;
while(res = myreg.exec(str)){
console.log("index="+RegExp.index + " leftContext="+RegExp.leftContext+" rightContext="+RegExp.rightContext)
} </script>

在chrome中的效果:(index属性在chrome,firefox,opera中都是不支持的)

在ie中的效果:

 二、String类型对象的正则表达式用法

1.search

  返回所要找的元素在字符串中的位置

var str= "abcdhuisd";
console.log(str.search(/dhu/));
返回:3

2.match  可以在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,返回的是指定的值,是一个数组

<script type="text/javascript">
var str= "abcd4564hui454s0ss4894d7937asda";
var myreg = /(\d){4}/gi;
res = str.match(myreg);
for(var i = 0;i<res.length;i++){
console.log(res[i]);
} </script>

3.replace 正则替换

<script type="text/javascript">
var str= "abcd4564hui454s0ss4894d7937asda";
var myreg = /(\d){4}/gi;
res = str.replace(myreg,"四个数字");
console.log(res); </script>

4.split 分割成数组:

  

<script type="text/javascript">
var str= "abcd4564hui454s0ss4894d7937asda";
var myreg = /(\d){4}/gi;
res = str.split(myreg);
console.log(res); </script>

或者:

<script type="text/javascript">
var str= "abcd4564hui454s0ss4894d7937asda";
var myreg = /(\d){4}/gi;
res = str.split("");
console.log(res); </script>

3.例题:

在一个子串中找到一个四位数,第一位和第四位相等,第二位和第三位相等,如1221

<script type="text/javascript">
var str= "abcd4564hui5665ss8899d7937asda";
var myreg = /(\d)(\d)\2\1/gi;
while(res = myreg.exec(str)){
console.log(res[0])
} </script>

找到一个字串中如aabbccdd的子串

<script type="text/javascript">
var str= "abcd4564hui11223344ss8899d7937asda";
var myreg = /(\d)\1(\d)\2(\d)\3(\d)\4/gi;
while(res = myreg.exec(str)){
console.log(res[0])
} </script>

js 正则表达式(reg)的更多相关文章

  1. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  2. JS正则表达式大全(整理详细且实用)

    JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...

  3. 快乐的JS正则表达式(二)

    在上一篇中介绍了一个test方法,在本文中将使用另外一个,exec方法可以找到匹配的结果并且返回结果以及位置.exec("正则"): 简单测试: var str = "{ ...

  4. JS正则表达式获取字符串中特定字符

    JS正则表达式获取字符串中得特定字符,通过replace的回调函数获取. 实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test  实 ...

  5. 【正则】精通JS正则表达式,没消化 信息量太大,好文

    http://www.jb51.net/article/25313.htm 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用 ...

  6. (转)js正则表达式之中文验证

    今天做表单提交的输入框条件验证,验证是否包含中文:网上搜了一圈基于js正则表达式的验证基本不好用,而且大多都是出自一两篇原文的转帖!到底什么才是拿来主义呢.根据搜索结果,本文取精华,告诉大家一个好用的 ...

  7. JS正则表达式---分组

    JS正则表达式---分组 之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着重和大家分享一下javascript正则表达 ...

  8. JS 正则表达式否定匹配(正向前瞻)

    引言:JS 正则表达式是 JS 学习过程中的一大难点,繁杂的匹配模式足以让人头大,不过其复杂性和其学习难度也赋予了它强大的功能.文章从 JS 正则表达式的正向前瞻说起,实现否定匹配的案例.本文适合有一 ...

  9. js正则表达式中test,exec,match方法的区别说明

    js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var ...

  10. js正则表达式【原】

    js正则表达式 http://www.w3school.com.cn/js/js_obj_regexp.asp js常用正则表达式 我的自测样例 <HTML> <HEAD> & ...

随机推荐

  1. C#根据URL生成签名

    代码: using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptog ...

  2. 2PC之JTA原理与实现

    转自:https://www.ibm.com/developerworks/cn/java/j-lo-jta/index.html 利用 JTA 处理事务 什么是事务处理 事务是计算机应用中不可或缺的 ...

  3. [SoapUI] 比较两个不同环境下XML格式的Response, 结果不同时设置Test Step的执行状态为失败

    import org.custommonkey.xmlunit.* def responseTP=context.expand( '${Intraday Table_TP#Response}' ) d ...

  4. MapReduce的初次尝试

    ====前提: 搭建好集群环境(zookeeper.hadoop.hbase). 搭建方法这里就不进行介绍了,网上有很多博客在介绍这些. ====简单需求: WordCount单词计数,号称Hadoo ...

  5. vue项目引入第三方js插件,单个js文件引入成功,使用该插件方法时报错(问题已解决)

    1.引入第三方js文件,npm安装不了 2.控制台显示引入成功 3.在methods下使用 图片看不清请看下面代码 updateTime() { setInterval(()=>{ var cd ...

  6. 【转】ACM各种WA的说明及可能的原因

    转载地址:http://blog.csdn.net/qq_15015129/article/details/52738184 1.答案错误 —— wrong answer 就是最常见的.这个没办法,基 ...

  7. OBD Problem Vehicles

    This page contains a list of vehicles that are known to be non-compliant with OBD-II in one way or a ...

  8. QML的默认属性default property

    qml中,普通的属性,需要添加属性名称,属性内容,如 color: “red” 默认属性则可以直接书写,去掉方括号,在写重用的QML组件式比较有用,例如将一个QmL外部资源封装好,内部具体的item, ...

  9. spring Aop概念

    面向切面编程(AOP)通过提供另外一种思考程序结构的途经来弥补面向对象编程(OOP)的不足.在OOP中模块化的关键单元是类(classes),而在AOP中模块化的单元则是切面.切面能对关注点进行模块化 ...

  10. 设计模式20:Memento 备忘录模式(行为型模式)

    Memento 备忘录模式(行为型模式) 对象状态的回溯 对象状态的变化无端,如何回溯.恢复对象在某个点的状态? 动机(Motivation) 在软件构建过程中,某些对象的状态在转换过程中,可能由于某 ...