b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

JS正则表达式的详细信息

电脑杂谈  发布时间:2020-03-28 00:04:26  来源:网络整理

js定义正则表达式_js正则表达式 数字_js 正则表达式

1. 常规语法规则

字符集,与任何包含的字符匹配

负字符集js定义正则表达式,匹配不包含的字符

下划线字母数字字符

非数字字母的下划线

js定义正则表达式_js 正则表达式_js正则表达式 数字

非空白字符

匹配非数字

单词开始或结束的地方

不是单词的开头或结尾

示例: 简单的邮箱匹配

js定义正则表达式_js正则表达式 数字_js 正则表达式

var r = /[\w.-]@[\w.-]/
//或者
var r = new RegExp('[\w.-]@[\w.-]','');

var emali = '@'
console.log(r.test(emali)); //false

var emali = 'web@qq'
console.log(r.test(emali)); //true

2. 重复

* 代表匹配0次或多次
+ 代表匹配1次或多次
? 代表匹配0次或1次
{n} 指定匹配次数
{n,} 匹配n次或更多
{n,m} 匹配n到m次
var r = /^[\w.]+@[\w.]+$/
r.test('web@qq.com')    //true

3. 属性标志

source          --s 正则的原始字符串形式
ignoreCase   --i 忽略大小写
global           --g 全局匹配,匹配后不中止
multiline        --m 如果字符串有换行,按多行匹配

js 正则表达式_js正则表达式 数字_js定义正则表达式

4. 方法

1.test() 方法,测试指定字符串是否满足对应的正则规则
2.exec() 方法,返回匹配内容等信息组成的对象
3.match() 方法,这是一个字符串的方法,与exec方法作用类似,区别是对g的解释不通,exec方法使用g标记时需要多次遍历,match方法回一次返回所有匹配内容
//如下:
var target = 'bg.jpg index.html app.js index.css test.jpg';
var r = /(\w+)\.jpg/g;

//match方法
console.log(target.match(r));
//结果
//(2) ["bg.jpg", "test.jpg"]

//exec方法
console.log(r.exec(target));
console.log(r.exec(target));
//结果
//(2) ["bg.jpg", "bg", index: 0, input: "bg.jpg index.html app.js index.css test.jpg", groups: undefined]
//(2) ["test.jpg", "test", index: 35, input: "bg.jpg index.html app.js index.css test.jpg", groups: undefined]

5. 分组和捕获

1. 群组使用情况:

//普通写法
var r = /123123123/;
console.log(r.exec("20191231231232019"));

//分组的写法
var r = /(123){3}/
console.log(r.exec("20191231231232019"));

//除了上面的使用场景,还可以用来做'或'匹配
var r = /hello (world|js)/;
console.log(r.test("hello world"));    //true
console.log(r.test("hello js"));    //true

js定义正则表达式_js 正则表达式_js正则表达式 数字

2. 那么什么是捕获?请参见以下示例

除了返回使用分组的表达式时匹配的完整内容之外js定义正则表达式,还捕获了哪些字符串

image.png

3. 非捕获分组

var r = /(web) say hello (world|js)/;
console.log(r.exec("web say hello world"));
//返回值 (3) ["web say hello world", "web", "world", index: 0, input: "web say hello world", groups: undefined]
//这里的world其实不需要捕获,只是用来做一个或匹配的

var r = /(web) say hello (?:world|js)/;
console.log(r.exec("web say hello world"));
//返回值 (2) ["web say hello world", "web", index: 0, input: "web say hello world", groups: undefined]
//这就是非捕获型匹配

6. 贪婪匹配和懒惰匹配

var str = '<span>abc</span><span>qwe</span>';
var r = /<span>.*<\/span>/;

r.exec(str);
//执行结果
["<span>abc</span><span>qwe</span>", index: 0, input: "<span>abc</span><span>qwe</span>", groups: undefined]
//匹配了最长路径,如果我们只想匹配到前面一部分,需要使用惰性匹配

var str = '<span>abc</span><span>qwe</span>';
var r = /<span>.*?<\/span>/;

r.exec(str);
//执行结果
["<span>abc</span>", index: 0, input: "<span>abc</span><span>qwe</span>", groups: undefined]
//在重复量词后面加一个?,代表使用惰性匹配,尽可能短的匹配

7. 前瞻/消极期待


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-154714-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...