美文网首页
正则表达式

正则表达式

作者: antimony | 来源:发表于2019-03-18 11:49 被阅读0次

1.什么是贪婪模式和非贪婪模式?

量词在默认下是尽可能多的匹配的,就是贪婪模式;非贪婪模式,让正则表达式尽可能少的匹配,也就是说一旦成功匹配不再继续尝试。


2.写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)。

function isValidUsername(str){
  reg = /^[\w]{6,20}$/;//^$来保证str整个都符合正则
  return reg.test(str);
}
console.log(isValidUsername('sfsdfdsafdda'));

3.写一个函数isPhoneNum(str),判断用户输入的是不是手机号。

function isPhoneNum(str){
  reg = /^(\+86)?1[356789]\d{9}$/;//加号需要转义
  return reg.test(str);
}
console.log(isPhoneNum('13671575015'));

4. 写一个函数isEmail(str),判断用户输入的是不是邮箱。

function isEmail(str){
  var reg = /^(\w)(.*)@\w{1,}\.(com|cn)$/;//邮箱不能以空白字符开头,并且注意.的转义
  return reg.test(str);
}
console.log(isEmail(str)('13671573015'));

5.写一个函数trim(str),去除字符串两边的空白字符。

function trim(str){
  reg = /(^\s+)|(\s+$)/g;//以空白字符开始或结尾
  return str.replace(reg,'');//用空字符串替换
}
console.log(trim('     dsfsfsd      '));

6. \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么?

\d,\w,\s都是预定义类,预定类的表格如下:

字符 等价类 含义
. [^\r\n] 除了回车符和换行符之外的所有字符
\d [0-9] 数字字符
\D [^0-9] 非数字字符
\s [\t\n\x0B\f\r] 空白符
\S [^\t\n\x0B\f\r] 非空白符
\w [a-zA-Z_0-9] 单词字符,字母、数字下划线
\W [^a-zA-Z_0-9] 非单词字符

[a-zA-Z0-9]是字符类,表示单词字符、字母、数字。
字符类
一般情况下正则表达式一个字符(转义字符算一个)对应字符串一个字符,表达式 jirengu 的含义是

image
但是我们可以使用元字符[]来构建一个简单的类, 比如[abcd]代表一个字符,这个字符可以是 abcd四个字符中的任意一个

\b是一个边界,边界列表如下:

字符 含义
^ 以xxx开头
$ 以xxx结尾
\b 单词边界
\B 非单词边界

例子:

var str = 'hello1 world hello2 123456 \t \r jirengu \n ruoyu hello3'
str.match(/hello\d/g)   // ["hello1", "hello2", "hello3"]
str.match(/^hello\d/g)  // ["hello1"]
str.match(/hello\d$/g)   // ["hello3"]

var str2 = 'hello1 whello9orld hello2 12-hello8-3456 \t \r jirengu \n ruoyu hello3'
str2.match(/\bhello\d\b/g)   //["hello1", "hello2", "hello8", "hello3"] 
//注意-也用于区分单词边界

字符 含义
. 除了回车符和换行符之外的所有字符
* 出现零次或多次
+ 出现一次或多次(至少出现一次)
? 出现零次或一次(最多出现一次)
x{3} 匹配x 出现 3 次
^ 在正则表达式里面,是以 xxx 开头;在中括号里面,是匹配除了它以外的
$ 以 xxx 结尾

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/rxommqtx.html