JavaScript正则表达式定义字符集

[a-e]        表示ae这些字符中的某一个字符

[aeiou]       表示aeiou5个字符其中的某一个字符

[a-zA-Z]       表示大写、小写字母中的某一个字符

[a-zA-Z0-9_-]    或小写、或大学、或数字或下划线横杠某一个字符

[0-9]        表示09之间任意一个数字

<script type="text/javascript">
    //创建一个正则模式
    //[0-9]匹配
    var reg = /[0-9]/
    var str = "2017-8-12";
    //结果:["2", index: 0, input: "2017-8-12"]

    var reg = /[5-7]/
    var str = "1997";
    //结果:["7", index: 3, input: "1997"]

    var reg = /[a-e]/;
    var str = "hello";
    //结果:["e", index: 1, input: "hello"]

    var reg = /[A-G]/;
    var str = "World";
    //结果:null

    var reg = /[ptrdx]/;
    var str = "computer";
    //结果:["p", index: 3, input: "computer"]

    var reg = /[a-zA-Z0-9_-]/;
    var str = "@##$%^&*(_#@FJD";
    //结果:["_", index: 9, input: "@##$%^&*(_#@FJD"]
    
    //字符串.match(正则)
    var rst = str.match(reg);
    console.log(rst);
</script>


1、特别字符组成

$  : 匹配输入字符串的结尾位置。

^  : 表示字符串的开始位置

( ): 标记一个子表达式的开始和结束位置。

*  : 其前面那个单元出现0次或以上(任意次数)

.  : 匹配除换行符 \n之外的任何单字符

+  : 其前面那个单元出现1次或以上

?  : 其前面那个单元出现0次或1

\  : 这个符号是用来转义的

|  : 指明两项之间的一个选择


+   ?  * 功能:

<script type="text/javascript">
    var reg = /[0-9]+/;
    var str = "2017-8-12";
    //结果:["2017", index: 0, input: "2017-8-12"]

    var reg = /go*gle/;
    var str = "goooooogle";
    //结果:["goooooogle", index: 0, input: "goooooogle"]

    var reg = /[0-9]*/;
    var str = "today is 222";
    //结果:["", index: 0, input: "today is 222"]
    var str = "222 today is";
    //结果:["222", index: 0, input: "222 today is"]

    var reg = /wo?rld/;
    var str = "woorld";
    //结果:null
    var str = "wrld";
    //结果:["wrld", index: 0, input: "wrld"]

    //字符串.match(正则)
    var rst = str.match(reg);
    console.log(rst);
</script>

.   |   \  功能:

<script type="text/javascript">
    var reg = /.*/;
    var str = "dasda^%&%*lklJDS";
    //结果:["dasda^%&%*lklJDS", index: 0, input: "dasda^%&%*lklJDS"]

    var reg = /milk|fish/;
    var str = "cat like eat fish";
    //结果:["fish", index: 13, input: "cat like eat fish"]
    var str = "cat like eat milk and fish";
    //结果:["milk", index: 13, input: "cat like eat milk and fish"]

    var reg = /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/;
    var str = "123.206.94.112";
    //结果:["123.206.94.112", index: 0, input: "123.206.94.112"]
    var str = "123.206.94";
    //结果:null

    //字符串.match(正则)
    var rst = str.match(reg);
    console.log(rst);
</script>

^   $ 功能:

<script type="text/javascript">
    var reg = /^banana/;    //出现在目标开头
    var str = "monkey like banana";
    //结果:null
    var str = "banana like monkey";
    //结果:["banana", index: 0, input: "banana like monkey"]

    var reg = /banana$/;    //出现在目标结尾
    var str = "monkey like banana";
    //结果:["banana", index: 12, input: "monkey like banana"]
    var str = "banana like monkey";
    //结果:null

    var reg = /13[0-9]{9}/;    //{9}严格出现九次
    var str = "13837264738";
    //结果:["13837264738", index: 0, input: "13837264738"]
    var str = "13837264738heihei";
    //结果:["13837264738", index: 0, input: "13837264738heihei"]
    var reg = /^13[0-9]{9}$/;    //{9}严格出现九次
    var str = "13837264738";
    //结果:["13837264738", index: 0, input: "13837264738"]
    var str = "ddd13837264738heihei";
    //结果:null

    //字符串.match(正则)
    var rst = str.match(reg);
    console.log(rst);
</script>

()  功能:

<script type="text/javascript">
    var reg = /(go)+gle/;
    var str = "gogogogogle";
    //结果:["gogogogogle", "go", index: 0, input: "gogogogogle"]
    var str = "gooooogle";
    //结果:null

    var reg = /<span>(.*)<\/span>/;    //()称为模式单元
    var str = "<div><span>杨勇</span><a>yangyong@163.com</a></div>";
    //结果:(2) ["<span>杨勇</span>", "杨勇", index: 5, input: "<div><span>杨勇</span><a>yangyong@163.com</a></div>"]
    //字符串.match(正则)
    var rst = str.match(reg);
    console.log(rst);
    console.log(rst[1]);
</script>


2、模式修正符

var 模式名称 = /模式内容/模式修正符

<script type="text/javascript">
    var reg = /[a-z]/;
    var str = "helloBEIJING";
    //结果:["h", index: 0, input: "hello BEIJING"]

    var reg = /[a-z]+/;
    var str = "helloBEIJING";
    //结果:["hello", index: 0, input: "hello BEIJING"]

    var reg = /[a-z]+/i;    //i忽略大小写
    var str = "helloBEIJING";
    //结果:["helloBEIJING", index: 0, input: "helloBEIJING"]


    var reg = /[0-9]+/;
    var str = "2015-03-23 17:30:20";
    //结果:["2015", index: 0, input: "2015-03-23 17:30:20"]

    var reg = /[0-9]+/g;
    var str = "2015-03-23 17:30:20";
    //结果:(6) ["2015", "03", "23", "17", "30", "20"]

    var reg = /[a-z]+[0-9]+/;
    var str = "XiangGang1997Aomen1999";
    //结果:["ang1997", index: 6, input: "XiangGang1997Aomen1999"]

    var reg = /[a-z]+[0-9]+/ig;
    var str = "XiangGang1997Aomen1999";
    //结果:(2) ["XiangGang1997", "Aomen1999"]

    //字符串.match(正则)
    var rst = str.match(reg);
    console.log(rst);
    console.log(rst[1]);
</script>

3、模式单元重复匹配

<script type="text/javascript">
    var reg = /([0-9]+-([0-9]+-[0-9]+)) ((([0-9]+):[0-9]+):[0-9]+)/;
    var str = "2017-08-12 15:48:30";
    //结果:(6) ["2017-08-12 15:48:30", "2017-08-12", "08-12", "15:48:30", "15:48", "15", index: 0, input: "2017-08-12 15:48:30"]

    //字符串.match(正则)
    var rst = str.match(reg);
    console.log(rst);
    //console.log(rst[1]);
</script>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值