js之正则表达式使用 正则的方法

JavaScript之正则表达式的使用方法详细介绍 test()方法是正则表达式最常用一个方法,用于检测一个字符串是否匹配某个模式.test()方法检查字符串是否与给出的正则表达式模式相匹配,如果是则返回true,否则就返回false,这一点在刚才上面的小案例里,大家都有体会。同时搭配g模式,test方法也可以进行全文的检查,上面的demo也有提到,这里不过多赘述。它的标准语法格式是这样的。... 阅读详情

1.正则表达式组成

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配

即:

正则表达式 = 普通字符 + 特殊字符

2.匹配符

字符匹配符用于匹配某个或某些字符

2.1 字符簇

在正则表达式中,通过一对方括号括起来的内容,我们就称之为“字符簇”,其表示的是一个范围,但是实际匹配时,只能匹配固定的某个字符。

注意:
字符簇是匹配范围内的某一个字符

2.1.1 字符簇 <==> 匹配内容

字符簇代表意义
[a-z]匹配小写字母从a-z中的任一字符
[A-Z]匹配大写字母从A-Z中的任一字符
[0-9]匹配数字从0-9任一字符
[0-9a-z]匹配数字从0-9或小写字母从a-z任一字符
[0-9a-zA-Z]匹配数字从0-9,小写字母从a-z或者是大写字母从A-Z的任一字符
[0-9a-zA-Z_]匹配包括下划线的任何单词字符

2.1.2 特殊符号 ^ ( 内容取反 )

在字符簇中存在一个特殊符号 ^(脱字节),脱字节在字符簇代表取反的含义

字符簇代表意义
[^a-z]匹配除小写字母从a-z以外的任一字符
[^0-9]匹配除数字从0-9以外的任一字符
[^abcd]匹配除abcd以外的任一字符

2.1.3 特殊字符

在正则表达式中还有一类特殊字符:

特殊字符对应字符簇
\d匹配一个数字字符,用字符簇表示[0-9]
\D匹配一个非数字字符,也可以使用字符簇[0-9]或[^\d]来表示
\w匹配包括下划线的任何单词字符,用字符簇[0-9a-zA-Z_]
\W匹配任何非单词字符,[^0-9a-zA-Z_]或[^\w]
\s匹配任何空白字符,空格、制表符、换行符都可以通过\s匹配
\S匹配任何非空白字符,[^\s]
.匹配除 " \n " 之外的任何单个字符

如:

//匹配cd的任一字符
var str = 'abcdefg'
var reg = /[cd]/gi
console.log(str.match(reg))   //["c", "d"]

//匹配任何任何单词字符
var str = 'abcfefg_$@'
var reg = /\w/gi
console.log(str.match(reg)) //["a", "b", "c", "f", "e", "f", "g", "_"]

//匹配符号 @
var str = 'abcfefg_$@123'
var reg = /@/gi
console.log(str.match(reg))  //["@"]

//匹配所有空白字符 
var str = 'abcfef g_$@'
var reg = /\s/gi
console.log(str.match(reg))   //[" "]

3.限定符

限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。

*:匹配前面的子表达式零次或多次,0到多,可以使用{0,}代替

+:匹配前面的子表达式一次或多次,1到多,可以使用{1,}代替

?:匹配前面的子表达式零次或一次,0或1,可以使用{0,1}代替

{n}:匹配确定的 n 次,如{18},连续匹配18次

{n,}:至少匹配n 次,如{1,},代表最少匹配1次

{n,m}:最少匹配 n 次且最多匹配 m 次,如{1,7}代表最少匹配1最多匹配7次

示例:

//匹配 连续4位数字
var str = 'z1234xc12345v'
var reg = /\d{4}/gi
console.log(str.match(reg))  //["1234", "1234"]

//匹配 至少连续2位 数字
var str = 'z12xc123v'
var reg = /\d{2,}/gi
console.log(str.match(reg))  //["12", "123"]

4.贪婪匹配 & 非贪婪匹配

能匹配多的就不匹配少的情况,就称之为“贪婪匹配原则”

能匹配少的就不匹配多的,“非贪婪匹配原则”
在正则表达式我们也可以在限定符的后面添加一个问号(?)

{3,5}? // 原来是默认贪婪匹配,匹配5个;现在加了 ? ,非贪婪匹配模式,匹配到3个即可

示例:

//匹配{2,3}  贪婪模式,即匹配最多位
var str = 'z123xc1234v'
var reg = /\d{2,3}/gi
console.log(str.match(reg)) //["123", "123"]

//匹配{2,3}  非贪婪模式,即匹配最少位
var str = 'z12xc123v'
var reg = /\d{2,3}?/gi
console.log(str.match(reg)) // ["12", "12"]

5.定位符

定位符可以将一个正则表达式固定在一行的开始或结束。也可以创建只在单词内或只在单词的开始或结尾处出现的正则表达式。

“ 小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个”

^ :匹配输入字符串的开始位置(以***开始)

$ : 匹配输入字符串的结束位置(以***结束)

\b : 匹配一个单词边界(字符串开头、结尾、空格、逗号、点号等符号)

\B : 匹配非单词边界

示例:

//验证手机格式
var str = '15212345678'
var reg = /^1[3456789]\d{9}$/gi   
//全局匹配不区分大小写  以1开头 + 第二位是[3456789]中的一位 + 连续9位数字结束

//或者
// var reg = /^1(3|4|5|6|7|8|9)\d{9}$/gi

if(reg.test(str)){
	console.log('合理的手机号')
}else{
console.log('不合理')
}

处理边界与非边界


var str = 'hello,my name id zhangsan'
var reg = /\Ban\B/gi

//匹配 第一个an字符
console.log(str.match(reg))   //["an"]
//使用lastIndex获取最后一次匹配到的索引值
console.log(reg.lastIndex)    // 0

6.转义符

在正则表达式中,如果遇到特殊符号,我们必须要使用转义字符(反斜杠\)来进行转义

(,),[,],*,+,?,.,/,\,^,$
这些特殊符号均需要进行转义

示例:

//匹配 $ 符号
var str = '!@#$%^&*()-+?'
var reg = /\$/gi
console.log(str.match(reg))  //["$"]

7.选择匹配符

在正则表达式,如果要匹配的内容包含多个选择,我们可以通过|选择匹配符来进行匹配

代码示例:

//定义正则,匹配 helloVue 或者  helloReact
var str = 'helloVue,helloReact'
var reg = /hello(Vue|React)/gi
console.log(str.match(reg))   // ["helloVue", "helloReact"]

8.特殊用法

8.1 正向预查

(?=) :正向预查

匹配结果?=匹配条件,必须满足匹配条件,才能输出匹配结果

代码示例:

//匹配后面是 NB 的超人
var str = '超人NB,超人NP'
var reg = /超人(?=NB)/gi
console.log(str.match(reg))  // ["超人"]  匹配的是后面为 NB 的超人
console.log(reg.lastIndex)   //  0

8.2 负向预查

(?!) :负向预查

代码示例:

//匹配后面不是 NB 的超人
var str = '超人NB,超人NP'
var reg = /超人(?!NB)/gi
console.log(str.match(reg))  // ["超人"]  匹配的是后面不为 NB 的超人
console.log(reg.lastIndex)   //  0

8.3 输出内容,但不捕获

(?: ) :输出内容,但不捕获
代码示例:

//匹配 helloVue 或 helloReact
var str = 'helloVue,helloReact'
var reg = /hello(?:Vue|React)/gi   
var row;
while(row = reg.exec(str)){
document.write(row+'<hr>')
}
//

9.正则常用的方法

转载 mengxiaohuan314

推荐看这篇csdn,很详细 → 只争朝夕

test(),exec() , match() , replace()

9.1 test()

验证字符串是否和正则相匹配

用法:regexp.test(string)

结果:若匹配返回true,若不匹配返回false

9.2 exec()

将字符串中匹配的内容捕获出来,只会捕获一次

用法:regexp.exec(string)

返回值:是一个数组,若无分组则数组里的内容包含三项,分别是匹配的内容、匹配内容的起始索引、原字符串

exec()处理分组
返回值:

  • 第一项是匹配的内容
  • 第二项开始是分组(括号里匹配)的内容,有几个分组就有几项
  • 倒数第二项是匹配内容的起始索引
  • 倒数第一项是原字符串

注意:若不需要捕获分布的内容,则在不需要捕获分组的里面加上原字符 ?:(匹配不捕获)

var str = "2019ceshi2020";
 
var reg = /\d\w/;
console.log(reg.exec(str));  //["20", index: 0, input: "2019ceshi2020", groups: undefined]
 
var reg = /(\d)(\w)/;
console.log(reg.exec(str));  //["20", "2", "0", index: 0, input: "2019ceshi2020", groups: undefined]
 
var reg = /(?:\d)(?:\w)/;
console.log(reg.exec(str));   //["20", index: 0, input: "2019ceshi2020", groups: undefined] 

9.3 match()

将字符串中匹配的内容捕获出来

用法:string.match(regexp)

若加上量词g则一次性捕获所有匹配的内容放到数组里返回,若不加则与exec()的返回值一样

9.4 replace()

将字符串中匹配的内容捕获出来

用法:string.replace(值类型 | regexp, 值类型 | 回调函数)

该方法不改变原有字符串

经典例题:

//大写数字替换小写数字
var str = "38576";
var a = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"];
str = str.replace(/\d/g, function () {
    return a[arguments[0]];
});
console.log(str);//叁捌伍柒陆 
//排除法
//获取地址栏中的参数并放入对象中
var str = "http://www.baidu.com?id=557131028857&name=ceshi&age=8";
var reg = /([^?=&]+)=([^?=&]+)/g;
var obj = {};
str.replace(reg, function ($0, $1, $2) {
    obj[$1] = $2;
});
console.log(obj);//{id: "557131028857", name: "ceshi", age: "8"} 
//去掉html标签
var str="<div id='div1' class='aa'>皇帝被废,太后痛哭流涕,</div><p>皇室威严扫地,群臣无不悲愤。</p>";
var reg = /<[^<>]+>/g;
str = str.replace(reg,"");
console.log(str);//皇帝被废,太后痛哭流涕,皇室威严扫地,群臣无不悲愤。 
算法之动态规划(DP)求解完全背包问题 算法之动态规划(DP)求解01背包问题 上面这篇文章主要讲解了01背包问题和动态规划算法,如果你不了解动态规划算法,建议先浏览一下这篇文章熟悉一下,因为,本文的算法思想是基于这篇文章的。 1、什么是完全背包问题? **01背包问题:**有一个背包的容积为V,有N个物品,每个物品的体积为v[i],权重为w[i],每个物品只能取1次放入背包中,背包所有物品权重和最大是多少? 完全背包: 有一个背包的容积为V,有N个物品,每个物品的体积为v[i],权重为w[i],每个物品可以取无限次放入背包中,背包所有物品权重和 阅读详情

相关推荐

别急着让AI画板!聊聊Cadence Allegro X AI和OrCAD X在实际PCB项目中的真实体验

本文分享了Cadence Allegro X AI与OrCAD X在PCB设计中的实际应用体验,探讨了AI辅助Layout的效率提升与潜在陷阱。通过高速ADC采集板案例,详细对比了AI与传统方法在电源平面分割、低速信号布线等任务中的表现,并总结了人机协作的最佳实践,为工程师提供实用参考。

weixin_30836759的博客 2209

js正则表达式使用详解

function Animal (name, age) { this.name = name this.age = age } Animal.prototype = { getName () { return this.name }, getAge () { return this.age } } const animal = new Animal(‘小黄’, 3) console.log(animal) // Animal {name: “小黄”, age: 3} console.log(animal.p

风如也的博客 9952

关系代数表达式优化步骤

关系代数表达式优化步骤 本篇主要讲解怎么画查询语法树并对其优化,因为我在学关系代数的语法树的时候,在网上找不到比较详细的教法或者技巧,最后通过答案反推原理,所以想写一篇技巧来描述一下这类题的解题方法。 先上书内讲解 1、构造查询树 第一步:把用高级语言定义的查询转换为关系代数表达式 ★ 以 SELECT子向对应投影操作,以FROM字向对应笛卡尔积以 WHERE子句对应选择操作,生成原始查询树 ★ SQL语句转化为原始查询树 第二步:把关系代数表达式转换为查询树。 注: 查询树是一种表示关系代数表达式的树形结

m0_51718449的博客 7016

JS正则使用

js正则的使用

2403_87107057的博客 1681

Kalibr标定避坑指南:如何用AprilGrid板快速完成双目IMU标定

本文详细介绍了使用AprilGrid板进行Kalibr双目IMU联合标定的实战技巧,包括标定工具选型、数据采集优化、标定流程及结果验证。通过AprilGrid板的唯一标识性和抗遮挡优势,结合IMU静止标定和运动激励设计,显著提升标定精度。文章还提供了常见报错处理和高级优化技巧,帮助开发者高效完成传感器标定。

sunny的博客 282

使用循环神经网络预测温度

简介 本文以天气时间序列数据集为例,讨论如何使用深度学习模型预测未来天气温度。 使用的是由德国耶拿马克思普朗克生物地球化学研究所的气象站记录。 数据每10分钟记录一次,共记录14种不同的量,如气温、气压、湿度、风向等,原始数据可追溯到2003年,本例只使用2009-2016年的数据。 数据 下载并解压数据略。 加载数据: data_dir = r'E:\practice\tf2\temperature' fname = os.path.join(data_dir, 'jena_climate_2009_

guotianqing的博客 5282

JavaScript正则表达式的使用详解

在前面分组的讲解中,我们知道括号匹配到了aaa,但我们如何用变量的表示这个aaa呢,这个就是命名的作用命名采用?的形式,写在要定义的内容前面,当不能写在开头,如/?/是不合法的。可以通过括号规避错误,如/(?)///通过命名捕获分组 let pattern3 = / (?'aaab','aaa','aaa',index: 2,这个例子可以看到patt匹配到了’aaa’,如果不想让圆括号分组的子表达式生成数字引用,那么可以不用(和)分组,而是开头用(?:,结尾用)。

yang45310的专栏 2492

MATLAB基础应用精讲-【数模应用】信用评分模型(附R语言和python代码实现)

信用评分模型是近年来兴起的一种为了保障银行和其他金融部门的金融安全而设立的一种关于人身金融权限的划定模型。该模型指根据客户的信用历史资料,利用一定的信用评分模型,得到不同等级的信用分数,根据客户的信用分数,来决定客户所可以持有的金额权限,从而保证还款等业务的安全性。而随着在现代社会和公司中,贷款,信用卡的作用日渐突出,信用评分模型的发展前景不可估量。信贷风险是指借款人因偿还贷款或履行合同承诺而破产而产生损失的可能性。传统上,它与贷款人无法偿还所欠利息和本金、影响现金流和增加装配成本所产生的风险有关。

qq_36130719的博客 364

JS正则表达式:常用正则手册/RegExp/正则积累

方法中,第二个参数可以是一个函数,可以在函数中对匹配到的字符串进行更复杂的处理。函数接收两个参数,第一个参数是匹配到的字符串,第二个参数是匹配到的子串中的第一个括号里的内容。函数接收两个参数,第一个参数是匹配到的字符串,第二个参数是匹配到的子串中的第一个括号里的内容。在这个例子中,我们使用匿名函数来处理匹配到的字符串,将匹配到的小写字母转换为对应的大写字母,并返回。匹配到的字符串将被替换为返回值。在这个例子中,我们使用匿名函数来处理匹配到的字符串,将匹配到的小写字母转换为对应的大写字母,并返回。

snow的博客 5687

7、初级视觉皮层(V1)的研究综述

本文综述了初级视觉皮层(V1)的基本功能特性、计算理解、细胞相互作用及理论模型。V1不仅执行方向和空间频率的选择性滤波,还通过相位选择性和上下文调制参与高级视觉处理。研究从信息编码角度解释了V1感受野的形成,并介绍了基于自然图像统计的建模方法。横向与反馈连接揭示了V1在全局视觉整合中的作用,尤其是上下文对细胞响应的快速调节。李的动态模型提出V1可生成视觉显著性图,支持前注意分割和注意力引导。未来研究聚焦于V1在注意力、意识和硬件实现中的潜在应用,推动视觉神经科学与人工智能的交叉发展。

7z8x2c4v6b9的博客 146

STM32cubemx配置驱动DHT11模块

本篇文章将带大家学习使用DHT11湿温度模块,使用这个模块可以获取当前的温度和湿度数据。DHT11可以用于智能家居,蔬菜大棚等项目当中适用范围广。DHT11 是一种数字式温湿度传感器,由杜邦公司推出。它可以测量环境中的温度和湿度,并将测量结果以数字形式传输给微控制器或其他电子设备,适用于通过数字信号读取环境温湿度的应用场景。DHT11 传感器使用单总线数据交换协议,可以通过一个 I/O 引脚进行控制和数据传输。

m0_49476241的博客 5912

JS正则表达式的定义及使用方法

JS正则表达式对于匹配纯文本的字符就很好用,但对于范围很复杂的数据的话,用正则就很麻烦了,通过举例说明,现在大家是不是有了一定的了解。JS正则表达式是用来匹配字符串的js正则表达式 i,比如强制浏览者输入你打算让他输入的内容等等。search()方法:用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。replace()方法:用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。正则表达式可以是一个简单的字符,或一个更复杂的模式。

2403_88477236的博客 322

智能温室:温室环境监测_(7).土壤监测技术包括pH值和电导率

土壤的pH值是指土壤溶液的酸碱度,它对植物的营养吸收和生长发育有着重要的影响。在智能温室中,土壤监测是非常重要的一个环节,因为土壤的pH值和电导率直接影响植物的生长和健康。本节将详细介绍如何利用传感器和数据处理技术来监测土壤的pH值和电导率,并提供具体的代码示例。在智能温室中,监测到的土壤pH值和电导率数据需要传输到中央控制系统进行进一步的处理和分析。通过以上步骤,您可以构建一个完整的智能温室土壤监测系统,实时监控土壤的pH值和电导率,确保植物在最佳的生长环境中。校准通常包括在已知电导率的标准溶液中进行。

zhubeibei168的博客 1408

js 正则去前后空格且长度不大于20_javascript中使用正则表达式删除前后空格的方法...

去掉首位空格str=str.replace(/^\s+|\s+$/g,'');js正则表达式删除字符串前后空格String.prototype.trim=function(){var reSpace=/^\s*(.*?)\s*$/;return this.replace(reSpace,”$1″);};让我们分析一下第二行的正则表达式^ 行开始\s*匹配字符前面的所有空格,贪婪模式重复(.*?)捕...

weixin_39612057的博客 238

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JS正则02——js正则表达式中常用的方法、常见修饰符的使用详解以及各种方法使用情况示例

JS正则02——js正则表达式中常用的方法、常见修饰符的使用详解以及各种方法使用情况示例

@素素~的博客 1338

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JS使用正则表达式获取小括号、中括号及花括号内容的方法示例

本文实例讲述了JS使用正则表达式获取小括号、中括号及花括号内容的方法。分享给大家供大家参考,具体如下: JS 正则表达式 获取小括号 中括号 花括号内的内容 0 <!DOCTYPE html> 1 <html> 2 <head> 3 <meta charset="utf-8" /> 4 <title>www.jb...

weixin_30241919的博客 1180

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

JavaScript 正则表达式的创建,基本使用方法案例

1.创建正则表达式对象 方式一:使用关键字new创建 var patt = new RegExp(pattern,modifiers); pattern:正则表达式的匹配模式。(字符串形式) modifiers:匹配模式修饰器 3种模式修饰符分别是: g:表示全局。匹配全部,如果不写g则匹配成功一个就结束。 i:表示忽略大小写。在匹配的时候不区分大小写 m:

侯春强的博客 664

JavaScript:什么是正则表达式和正则表达式各种方法的使用

目录 正则表达式 1.什么是正则表达式? 2.正则表达式的创建 字面量(直接量) 构造函数 3.字符分类 普通字符 特殊字符 模式修饰符 4.正则表达式实例方法 exec test toString/toLocaleString 5.正则表达式实例属性 lastIndex ignoreCase、global、multiline source 6.正则表达式语法-元字符 直接量字符 字符集合 边界符 字符类 7.数量词 案例 1.匹配QQ号 2.匹配身...

qq_51066068的博客 1207

JavaScript 中的正则表达式使用方法

正则表达式匹配规则 正则表达式的匹配规则可以看另外一篇文章:https://blog.youkuaiyun.com/qq_36754767/article/details/89857183 RegExp JavaScript 可以通过构造函数RegExp构造正则表达式(Regular Express) var pattern1=new RegExp('ain') 使用元字符匹配时需要添加转义符 \ 也可以...

how2js的博客 166

JS中的正则表达式概念以及部分使用方法

JS中的正则表达式 正则表达式的作用是什么? 正则表达式用于定义一些字符串的规则,计算机可以根据这个规则,来检查一个字符串是否符合规则,将字符串中符合规则的内容匹配出来。 如何创建一个正则表达式? 创建一个正则表达式有两种方式: 一、构造函数方式 例: var reg = new RegExp('\d', 'gim'); 通过 new 构造一个正则表达式对象,其中第一个参数 ‘\d’ 是正则内容,第二个参数 ‘gim’ 是修饰符。两个参数皆为字符串类型。修饰符的作用是对匹配过程进行限定。i表示对匹配的内容

zzh1251994430的博客 287

JS:正则表达式的特点及使用方法

正则表达式是用于匹配字符串中字符组合的模式,在JS中,正则表达式也是对象。 正则表达式通常被用来检索、替换符合某个模式(规则)的文本,例如验证表单,或过滤掉页面内容中的一些敏感词等。 正则表达式的特点: 1.灵活性、逻辑性和功能性非常强 2、可以迅速地用简单的方式达到字符串的复杂控制 ...

weixin_46682277的博客 420

js正则表达式属性及方法的使用

正则表达式 直接量语法 /pattern/attributes 创建 RegExp 对象的语法: new RegExp(pattern, attributes); 五大属性 global:如果设置了new RegExp(‘s’,’g’),g(全局)被设置,所以global为true; ignoreCase:同上,ignoreCase,对应的是i(大...

weixin_30920091的博客 190

js正则表达式函数(方法)的使用 - part2 - Kaiqisan

js正则表达式函数(方法)的使用 こんにちは、Kaiqisanすうう、一つの学生プログラマである!上一节,我们讲了正则表达式最基本的使用方法,现在我们来讲讲一些与正则表达式有关的方法,这些方法奠定了正则表达式的用途。 test(str): 匹配方法,用于判断字符串是否符合正则表达式的规则,如果符合就返回true,不符合就返回false.它一般用于填写表单的合法性的判定。 let str = apple let reg = /pp/ let flag = reg.test(str) // 最简单的匹配规则

Kaiqisan的博客 230
上一篇: git 日常使用详解
下一篇: 箭头函数和普通函数的区别
Dark_programmer
博客等级 码龄7年 9074粉丝 307原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值