取出字符串中的连续数字并把数字乘以10再返回新的字符串--js中replace的回调函数详解
来源:互联网 发布:java程序员太多了知乎 编辑:程序博客网 时间:2024/05/29 10:49
以前面试遇到的一道题,意思就是:把取出字符串中的连续数字并把数字乘以10再返回新的字符串,当然截取字符串是可以做到的,但是方法太挫,明显得用正则,可是当时不会,后来又遇到这样的面试题目,还是不会,最近看vue的源码看到Line135,总算知道怎么办了。
经常用的replace原来替换值可以用回调函数,怪我以前太无知。。。
以前都只会类似这样的用法:
var tt = "hi#h$ello"tt = tt.replace(/(#|\$)/g, '');console.log(tt);//hihello用回调函数可以这样:
var tem2 = 'a910-a2-a3'tem2 = tem2.replace(/(\d)+/g, function (macth) { return macth*10;})console.log(tem2);//a9100-a20-a30另外如果是要单个数字乘以10的话 , 用/(\d)/g就好啦,结果就是a90100-a20-a30。
这里的回调函数是每次执行到匹配的数字都会执行一次,比如说910、2、3,这里执行三次。
还可以这样用,得到的匹配不全部替换:
var camelizeRE = /-(\w)/g;var camelize =function (str) { return str.replace(camelizeRE, function (_, c) { console.log('camelize',_,c);//camelize -i i // camelize -e e return c ? c.toUpperCase() : ''; })};var tem = 'this-is-el';console.log(camelize(tem))//thisIsEl这里打印回调函数,可以发现两个参数值的区别。
这段代码是来自vue源码的Line135,只是我把cached函数去掉了。
阅读全文
0 0
- 取出字符串中的连续数字并把数字乘以10再返回新的字符串--js中replace的回调函数详解
- 82.取出字符串中的数字字符组成新的字符串
- 字符串中找出连续最长的数字子串,并返回这个数字串的长度
- 在字符串中找出连续最长的数字串,并把这个串的长度返回.
- 在字符串中找出连续最长的数字串,并把这个串的长度返回.
- 在字符串中找出连续最长的数字串,并把这个串的长度返回
- 在字符串中找出连续最长的数字串,并把这个串的长度返回
- 字符串中连续最长的数字字符串
- 取出字符串中的数字
- 取出一个字符串中的所有数字组成一个新的字符串
- 在字符串中找出连续最长的数字串并以参数形式返回,并把这个串的长度返回
- oracle中取出字符串中的数字
- 取出符串“123-456-789-000”中的数字部分,组成一个新的字符串输出
- 微软面试之25 在字符串中找出连续最长的数字串,并把这个串的长度返回,
- 华为练习题 在字符串中找出连续最长的数字串,并把这个串的长度返回
- C/C++ | 21-9 字符串中找出连续最长的数字串,并把这个串的长度返回
- 在字符串中找出连续最常的字符串,并把这个串的长度返回。
- iOS---取出字符串中的数字
- 为什么查询sap数据库表的时候前面要加sapsr3
- HBase详解文档
- kapok 简介及使用
- 关于Android应用内存泄漏MAT分析使用
- Kotlin Primer·第五章·函数与闭包
- 取出字符串中的连续数字并把数字乘以10再返回新的字符串--js中replace的回调函数详解
- SSH无密码登录
- 子集生成+stl全排列
- 中科院大牛博士是如何进行文献检索和阅读
- <Shader>透明效果+纹理融合 vertex和fragment
- codeforces 798C
- Activity工作流(1)-三分钟了解工作流
- v-text
- 2015第六届蓝桥杯决赛_积分之谜