JavaScript(4):正则表达式

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

基础方法

 <!DOCTYPE html>
<html>
<body>
<p>类型及转换</p>
<script>
// 正则表达式语法: /正则表达式主体/修饰符(可选)
// 在JavaScript中,正则表达式通常用于4个字符串方法: search()/replace()/match()/split()
// [i]执行对大小写不敏感的匹配;[g]执行全局匹配(查找所有匹配而非在找到第一个匹配后停止);[m]执行多行匹配
var demo1 = "C Java JavaScript";
var pattern1 = /java/ig;
console.log(demo1.search(pattern1)); // 2(与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置)
console.log(demo1.replace(pattern1, "ECMA")); // C ECMA ECMAScript
console.log(demo1.match(pattern1)); // ["Java", "Java"]
console.log(demo1.split(pattern1)); // ["C ", " ", "Script"]
// test()方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false
console.log(/Script/.test(demo1));
// RegExp 对象 下面两个是等价的:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)
var pattern2 = new RegExp("\\w+");
var pattern3 = /\w+/;
</script>
</body>
</html>

Javascript Regexp

 <!DOCTYPE html>
<html>
<body>
<p>正则表达式</p>
<script>
// 查找方括号之间的任何字符
var pattern1 = /[abc]/g;
console.log("acde".match(pattern1)); // ["a", "c"]
console.log("defg".match(pattern1)); // null
// 查找任何不在方括号之间的字符
var pattern2 = /[^abc]/g;
console.log("acde".match(pattern2)); // ["d", "e"]
console.log("acba".match(pattern2)); // null
// 查找单个字符,除了换行和行结束符
var pattern3 = /a.a/ig;
console.log("Java and JavaScript".match(pattern3)); // ["ava", "ava"]
// 查找单词字符(单词字符包括:a-z、A-Z、0-9,以及下划线)
var pattern4 = /\w/g;
console.log("!@#$A%^&*(a2)_".match(pattern4)); // ["A", "a", "2", "_"]
// 查找非单词字符
var pattern5 = /\W/g;
console.log("1@R&*_d".match(pattern5)); // ["@", "&", "*"]
// 查找数字字符
var pattern6 = /\d/g;
console.log("13@R&*_2d".match(pattern6)); // ["1", "3", "2"]
// 查找非数字字符
var pattern7 = /\D/g;
console.log("13@R&*_2d".match(pattern7)); // ["@", "&", "*", "_"]
// 查找空白字符(空白字符可以是:空格符/制表符/回车符/换行符/垂直换行符/换页符)
var pattern8 = /\s/g;
console.log("aa bb ".match(pattern8)); // [" ", " "]
// 查找非空白字符
var pattern9 = /\S/g;
console.log("a 1&".match(pattern9)); // ["a", "1", "&"]
// 匹配单词边界,查找位于单词的开头或结尾的匹配
var pattern10 = /\bjava/ig;
console.log("Java and JavaScript".match(pattern10)); // ["Java", "Java"]
// 匹配非单词边界,匹配位置的上一个和下一个字符的类型是相同的:即必须同时是单词,或必须同时是非单词字符。字符串的开头和结尾处被视为非单词字符
var pattern10 = /\Bscript/ig; // 对字符串中不位于单词开头的'script'进行全局搜索
console.log("Java and JavaScript".match(pattern10)); // ["Script"]
// 查找换行符(NULL字符\0 换页符\f 回车符\r 制表符\t 垂直制表符\v)
var pattern11 = /\n/g;
console.log("Hi,\nI'm Frank.".match(pattern11)); // ["\n"]
// 查找以八进制数xxx规定的字符
var pattern12 = /\111/ig;
console.log("Hi,\nI'm Frank.".match(pattern12)); // ["i", "I"]
// 以十六进制数dd规定的字符
var pattern13 = /\x49/ig;
console.log("Hi,\nI'm Frank.".match(pattern13)); // ["i", "I"]
// 元字符用于查找以十六进制数xxxx规定的 Unicode字符
var pattern14 = /\u0049/ig;
console.log("Hi,\nI'm Frank.".match(pattern14)); // ["i", "I"]
// n+ 量词匹配包含至少一个n的任何字符串(>=1)
var pattern15 = /o+/g;
console.log("book note wooo~".match(pattern15)); // ["oo", "o", "ooo"]
// n* 量词匹配任何包含零个或多个n的字符串(>=0)
var pattern16 = /co*/g;
console.log("cat cookie come".match(pattern16)); // ["c", "coo", "co"]
// n? 量词匹配任何包含零个或一个n的字符串(<=1)
var pattern17 = /co?/g;
console.log("cat cookie come".match(pattern17)); // ["c", "co", "co"]
// n{X} 量词匹配包含X个n的序列的字符串
var pattern18 = /\d{4}/g;
console.log("100, 1000 or 10000?".match(pattern18)); // ["1000", "1000"]
// n{X,} X是一个正整数。前面的模式n连续出现至少X次时匹配
var pattern19 = /\d{4,}/g;
console.log("100, 1000 or 10000?".match(pattern19)); // ["1000", "10000"]
// n{X,Y} X和 Y为正整数。前面的模式 n连续出现至少X次,至多Y次时匹配
var pattern20 = /\d{3,4}/g;
console.log("10, 100, 1000 or 10000?".match(pattern20)); // ["100", "1000", "1000"]
// n$ 量词匹配任何结尾为n的字符串
var pattern21 = /is$/g;
console.log("Is this his".match(pattern21)); // ["is"]
// ^n 量词匹配任何开头为n的字符串
var pattern22 = /^Is/g;
console.log("Is this his".match(pattern22)); // ["Is"]
// ?=n 量词匹配任何其后紧接指定字符串n的字符串
var pattern23 = /Is(?= thi)/g;
console.log("Is this his".match(pattern23)); // ["Is"]
// ?!n 量词匹配其后没有紧接指定字符串 n的任何字符串
var pattern24 = /is(?! all)/ig;
console.log("Is this all there is".match(pattern24)); // ["Is", "is"]
</script>
</body>
</html>
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: JavaScriptJava