正则运算符

Math对象并不像Date和String那样是对象的类,因此没有构造函数Math(), 像Math.sin()这样的函数,不是某个对象的方法

你无需创建它,通过把Math作为对象使用就可以调用其所有属性和方法.

取π的值Math.PI

求一个数的平方根 Math.sqrt(15)

求一个数的绝对值 Math.abs(-5);

向上取整 console.log(Math.ceil(5.1));

向下去整 floor(x)

把数四舍五入为最近的整数 Math.round(x)

Math.random() 返回0-1直接的随机数

JavaScript Date 对象

//两个日期相减得到的时间差, 单位是毫秒

var date1 = new Date("2016-9-1)

var date2 = new Date("2016-9-20)

//两个日期相减得到的时间差,单位是毫秒 var res = date2-date1;

//从Date对象中,以四位数字返回年份 var time = date1.getFullYear(); console.log(time);

//从Date对象中返回一个月中的那一天.

var d = date1. getDate();

// 结果: 1,date1中定义的时哪一天,就打印那一天.

var date3 = new Date(); console.log(date3); //结果:Fri Mar 09 2018 20:19:46 GMT+0800 (CST) console.log(date3.toUTCString()); //结果:Fri, 09 Mar 2018 12:19:46 GMT

JavaScript String 对象

//anchor() 创建HTML锚

var text = "hello World"; console.log(text.anchor("text") 结果: hello World

var str = "Hello world"; console.log(str.length);//结果12

正则运算符

reg = /正则部分(定义的规则)/正则属性

g 全局匹配 加i 就不区分大小写

var reg = /test/g; 查找全局叫text 的字母

\d代表数字
var reg = /\d/g;查找全局的数字

\w代表单词字符: 数字 字母 下划线 var reg = /\w/g; 查找全局的 数字 字母 下划线.

//.代表除去换行符的任意字符(\n换行 \t 大空格 \b退格符 \代表的是一个反斜杠)

var reg = /./g; 全局除去换行符的任意字符

//\s只要出现空白就匹配 \s只要不出现空包就匹配.

var reg = /\s/g; 全局匹配 /s中出现空白就匹配 不出现空包就不匹配.

var reg = /\w{}/g;可以作为用户名规则6-12 var reg = /\d{2,3}/g; 代表在全局中查询查询长度为 2 或者3的元素.

//小括号 代表 只匹配 括号中的元素

var reg = /(34)|(32)/g 在全局中查找,括号中的元素.

var reg = /(34)|(32)/g = var reg =/3[24]/g 他们是等价的

开头和结尾 只找第一位元素 如果找不到就返回空

var reg = /^34/g; 只在全局中查找第一位元素,是否为34 如果不是或者找不到就返回空

开头和结尾 只找最后一位的元素 如果没有或者找不到,就返回空 var reg = /34$/g;

开头和结尾 同时用就代表 str 只能是34 开头和结尾如果不是34就会返回空

限制字符串长度 va reg = /^\d{11}&/g; 在全局中查找全局中长度为1 的字符串, 如果没有就返回空

匹配 36 长度的字符串 var reg = /^\d{3,6}$/g; 在全局中查找长度 为3 和长度为6 的字符串.

// 11位 纯数字的电话号码.1开头 第二位 3-8

var reg = /^1[10379]|4[7]5[0258]|6[1]|7[378]|8[029])\d{8}$/g;
### `?=` 运算符的作用与用法 正则表达中的 `?=` 是一种 **正向先行断言(Positive Lookahead)**,用于指定某个模必须出现在当前位置之后,但不会将该模包含在匹配结果中。它是一种非捕获型结构,仅进行条件判断,不消耗字符[^3]。 其基本语法为: ```regex pattern(?=lookahead_pattern) ``` 表示只有当 `lookahead_pattern` 出现在 `pattern` 之后时,整个匹配才成立。但 `lookahead_pattern` 本身不会被包含在最终的匹配结果中。 --- #### 示例 1:提取以 `pid=` 开头的参数值 假设字符串如下: ```text query_string = "name=John&pid=12345&age=30" ``` 若希望匹配 `pid=` 后面的值,并且确保其后是 `&` 或字符串结尾,可以使用以下正则表达: ```python import re text = "name=John&pid=12345&age=30" match = re.search(r'pid=(\d+)(?=&|$)', text) if match: print(match.group(1)) # 输出: 12345 ``` 在这个例子中,`(?=&|$)` 表示匹配的位置后面必须是一个 `&` 或者字符串结束,这样可以确保只提取 `pid=12345` 中的数字部分[^3]。 --- #### 示例 2:验证密码是否包含特殊字符 如果要验证一个密码是否包含至少一个数字和一个大写字母,可以使用多个正向先行断言组合: ```python import re password = "Pass123" if re.fullmatch(r'(?=.*[A-Z])(?=.*\d).+', password): print("密码符合要求") ``` 此处的 `(?=.*[A-Z])` 和 `(?=.*\d)` 分别表示“必须包含至少一个大写字母”和“必须包含至少一个数字”,它们作为前置条件而不参与实际匹配内容的捕获[^4]。 --- #### 示例 3:匹配特定上下文下的关键词 例如,在一段文本中查找“error”这个词,但仅限于其后紧跟“code”的情况: ```python import re text = "An error occurred. errorcode is invalid." matches = re.findall(r'error(?=\s*code)', text) print(matches) # 输出 ['error'] ``` 此例中,`error(?=\s*code)` 会匹配“error”并且其后紧跟着零个或多个空格以及“code”,但“code”本身不会被包含在匹配结果中。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值