您的位置:首页 > Web前端 > JavaScript

JavaScript正则表达式定义字符集

2017-08-17 21:16 405 查看
[a-e] 表示a到e这些字符中的某一个字符

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

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

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

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

<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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: