js去除字符串数字前面的0_JS正则里面“?”的用处
限定符
匹配前面的子表达式零次或一次,0或1,可以使用{0,1}代替
举例:
在平常webpack的rules配置中,用来匹配ts和tsx文件
{test: /.tsx?$/
}
非贪婪匹配
能匹配少的就不匹配多的原则
举例:
查找字符串的数字,如果有3个数字连在一起,就直接匹配
const str = 'sd2345s423987sd2342'
str.match(/d{3,5}?/g)
// 因为增加了"?"符合,导致只要有符合3个连续数字的就返回。
// ["234", "423", "987", "234"]str.match(/d{3,5}/g)
// 去掉"?"后,变成了默认模式,就是贪婪匹配
// ["2345", "42398", "2342"]
查找img全标签
const str = '<img class="latex" style="width:2.323ex; height:2.009ex; vertical-align: -0.171ex;" src="https://td.com/1.png" /><span>s</span>'
str.match(/<img.*?/?>/g)
// ["<img class="latex" style="width:2.323ex; height:2.…l-align: -0.171ex;" src="https://td.com/1.png" />"] // 下面把第一个"?"去掉,发现结果就是全部匹配了。
str.match(/<img.*/?>/g)
// ["<img class="latex" style="width:2.323ex; height:2.…1ex;" src="https://td.com/1.png" /><span>s</span>"]
先行断言
x 只有在 y 前面才匹配,必须写成/ x(?=y)/的形式
举例:
查找字符串%前面的数字
const str = 'The best way to achieve a goal is to devote 100% of your time and energy to it.'
str.match(/d+(?=%)/g)
先行否定断言
x 只有不在 y 前面才匹 配,必须写成/ x(?!y)/的形
举例:
查找字符串中数字不在%前面的数字
let str = 'I have more than 100 books'
str.match(/d+(?!%)/g)
// ["100"]
str = 'I have more than 100 books, but only 20% is about software'
str.match(/d+(?!%)/g)
// 【注意】2也匹配到了,如果需要把20也过滤掉,需要额外加代码
// ["100", "2"]
非获取匹配
输出内容,但是不匹配
举例:
输出查找到的内容
/(?:js|golang) is good/.exec('js is good, golang is good')
// js这个词虽然有()进行处理,但是不会被匹配到,而是整体输出`js is good`
// ["js is good", index: 0, input: "js is good, golang is good", groups: undefined]/(js|golang) is good/.exec('js is good, golang is good')
// 去掉“?:”之后的结果
// ["js is good", "js", index: 0, input: "js is good, golang is good", groups: undefined]
后行断言
"后行断言"正好与"先行断言"相反 , x 只有在 y 后面才匹配 , 必须写成/(?<=y)x/的 形式
举例:
查找¥后面的数字
let str = `I spent ¥100 RMB to buy this book`
/(?<=¥)d+/.exec(str)
后行否定断言
x 只有不在 y 后面才匹配,必须写成/(?<! y)x/的形式
举例:
查找不是¥后面的数字
let str = `I spent $100 RMB to buy this book`;
/(?<!¥)d+/.exec(str)
// ["100", index: 9, input: "I spent $100 RMB to buy this book", groups: undefined]
对于文章不足之处,欢迎留言指出,也可以发送邮件给我(wangluofei@bytedance.com),谢谢。BTW,字节欢迎更多前端同学的加入。
js去除字符串数字前面的0_JS正则里面“?”的用处相关推荐
- js去除字符串数字前面的0_JS基础复习-七种基本数据类型
前言:JS必须死记的七种数据类型 string number boolean null undefined symbol(比较特殊,先不做讨论) object 一.string-字符串 1.定义:字符 ...
- js去除字符串中的所有空格(包括前后,中间存在的所有空格),清除前后空格(手机输入框实用),es6新方法
一.js去除字符串中的所有空格: str = " hello world ! " str.replace(/\s/g,""); 感觉很好用. 二.去除左右 ...
- js去除字符串的空格
说到去除空格,首先都会想到的就是trim()方法,但是trim()只能去除字符串前后的空格,无法去除字符串中间的空格. 下面总结一下js去除字符串空格的几种方法: 1.trim() trim()是去除 ...
- js去除字符串空格(空白符) 将数组转化为字符串
需求:使用elment input框 文本域,支持多工单号查询,因为复制的数据会有空格出现,后端不要空格 所以需要去除空格并转成字符串 js去除空格: let a = this.crud.query. ...
- JS去除字符串中间多余空格
JS去除字符串中间多余空格 // An highlighted blockvar str = '1 1 2 333 777 99 adf 'var arr = str.split('')var str ...
- js中字符串数字转换为数值类型
js中将字符串数字转换为数值类型的方法: 1. 使用Number( ) 和String( )这个两个内建函数. var a = 42; var b = String( a ); var c = &qu ...
- js 去除字符串左右两边空格
js 去除字符串左右两边空格 //使用js自带的trim()let actionValue=value.target.value.trim()this.$set(record, 'paramKey', ...
- JS去除字符串左右两端的空格
去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim.ltrim 或 rtrim,但在js中却没有这3个内置方法,需要手工编写.下面的实现方法是用到了正则表达式,效率不错,并把这三 ...
- 导出excel数字前面的0消失_EXCEL文本之王TEXT函数的4个运用
转自EXCEL不加班 今天分享文本之王TEXT函数的4个运用,跟着卢子一起来操作. 1.发票号都是8位,从系统导出后前面的0消失,如何补齐? 常规格式发票号前面的0都会消失,只有文本格式情况下的0才不 ...
最新文章
- F1 score的意义
- 微软Vista今起大幅降价 最高幅度达到千元
- spring3-mvc实例-信息转换
- Linux 常用命令全集
- Android菜单详解
- MyDriver2-397 XCTF 3rd-RCTF-2017 (windows 驱动题)
- sublime - sublimerge 文本比较插件
- 【转】职场学做“功夫熊猫”
- python 组合数字和字符_python无限生成不重复(字母,数字,字符)组合的方法
- 热更新方案-难不难在于你
- 去哪儿2017校园招聘 开发工程师(第二批次)- 题解
- 计算机的指标是什么意思,评价计算机的性能指标是什么
- 漫画 | 妹子让我写个程序,我却搞砸了...
- 柳州副市长:酸雨之都如何再现碧水蓝天
- 小世界网络中的SIRS传染病模型实现
- Ubuntu安装dos2unix工具
- 小米开源监控open-falcon安装
- 在Adobe Illustrator中创建漂亮的冬季场景
- 品牌如何借势奥运进行微博营销
- TA入门笔记·美术向(二)