js正则
部分正则:
| (?:...) | 表示非捕获型分组,就是不会缓存下来,留着后面再用 |
| ? | 它表示重复0或1次 |
| (...) | 表示一个捕获型分组(capturing group)。一个捕获型分组将复 制它所匹配的文本,并将其放人result数组中。每个捕获型分组都将被指定一个编号。第 一个捕获型分组的编号是1,所以该分组所匹配的文本考贝将出现在result[1]中 |
| + | 表示匹配一次或者多次 |
| \ | 表示转义 |
| . | 表示会将匹配除行结束符以外的所有字符 |
| \d | 表示数字 |
|
[^?#] |
表示以一个^开始,它表示这个类包含除?和#之外的所有字符。*表示这个字符类将被匹配0次或多次。 |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var agreement ='http:';
var reg = /^(?:([A-Za-z]+):)?$/;
console.log(reg.test(agreement));//true
//非捕获型分组 参考https://www.cnblogs.com/yangyang63963/p/5692992.html
var tmp1 = "project",tmp2 = "program",tmp3 = "professional"
var reg2 = /pro(?:gram|ject)/
console.log(reg2.test(tmp1))//true
console.log(reg2.test(tmp2))//true
console.log(reg2.test(tmp3))//false
var bar = "///";
var reg3 = /(\/{0,3})/;//表示/可以重复0到3次
console.log(reg3.test(bar));//true
var hostname = "www.b-aidu.com";
var reg4 = /([0-9.\-A-Za-z]+)/;
console.log(reg4.test(hostname));//true
var port ="::80";
var reg5 = /(?::(\d+))?/
console.log(reg5.test(port));//true
var bar2 = "/#";
var reg6 = /(?:\/([^?#]*))?/ //主机名后/后面可以写#
console.log(reg6.test(bar2));//true
var content = "#afsafsa";
var reg7 = /(?:\?([^#]*))?/
console.log(reg7.test(content));//true
var content1 = "hufahifiahi4828471$@#$!%^!@%#!!"
var reg8 = /(?:#(.*))?/;
console.log(reg8.test(content1));//true
var url = "https://www.ora.com:80/goodparts?q#fragment";
var urlTest = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))$/
console.log(urlTest.test(url))
var parse_number = /^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;
console.log(parse_number.test('9999.e-1'));
</script>
</body>
</html>

浙公网安备 33010602011771号