我有一串号码
1.01.01.01
1.01.01.02
1.01.02.03
我需要在第二次出现**'.0'后的数字上加1:
一点零一分零二分零一分
一点零一分零二分零二分
一点零一分零三分
我正在使用javascript。我已经尝试了一些东西,但我只是得到这么混乱与regex哈哈。
我一直在玩,split可能是一种方法,谢谢Richard,有人知道在字符串中的01
上递增+1
,或者我需要先分解字符串,然后把它变成整数吗?
我有一串号码
1.01.01.01
1.01.01.02
1.01.02.03
我需要在第二次出现**'.0'后的数字上加1:
一点零一分零二分零一分
一点零一分零二分零二分
一点零一分零三分
我正在使用javascript。我已经尝试了一些东西,但我只是得到这么混乱与regex哈哈。
我一直在玩,split可能是一种方法,谢谢Richard,有人知道在字符串中的01
上递增+1
,或者我需要先分解字符串,然后把它变成整数吗?
2条答案
按热度按时间bxgwgixi1#
您可以使用此代码片段完成以下步骤中的工作:
1.按
.0
拆分输入字符串1.将第二个元素转换为Integer并递增1
1.将结果元素存储在数组
ret
中1.再次将
ret
的元素与.0
连接,并将新字符串保存到result
数组中1.最终显示
result
数组代码:
3j86kqsm2#
基于
split
和/或非正则表达式的方法可以像下面的代码一样直接实现(当然不能控制解析的第三个参数的有效性,该参数被假定为数字(序列))...更精确(边缘情况)的基于
replace
的方法需要更复杂的capturing
正则表达式,如.../^((?:.*?\.0){2})(\d+)(.*)/
...,以及作为其第二个参数的replacer函数。正则表达式...
/^((?:.*?\.0){2})(\d+)(.*)/
...读起来像这样...^( (?:.*?\.0){2} )
^
捕获( ... )
以下匹配...(?: ... ){2}
...两次{2}
一个未捕获的?:
组( ... )
具有以下模式....*?0
...以非?
贪婪方式执行任何.*
,直到出现点零序列.0
。(\d+)
(.*)
( ... )
任何.*
贪婪的内容,直到字符串结束。相关的replacer函数是
replace
的回调函数,它将整个匹配(第一个参数)作为参数传递,然后将每个捕获的值作为单独的参数传递,从第一个捕获开始,到最后一个捕获结束。因此,对于给定的示例,替换函数的参数名称(可以自由选择)和优先级为...
(match, leading, digits, trailing)
...其中digits
是第二个捕获组,OP希望成为递增整数的数字(序列)。解决方案可能类似于下面提供的示例代码...
一个二个一个一个