【发布时间】:2018-12-28 18:17:13
【问题描述】:
伙计们。
我在使用此功能时遇到了一些问题
const incrementString = str => {
if (!str.match(/[\d+]$/)){
return str += 1
} else{
return str.replace(/[\d+]$/, ch => new Number(ch) + 1)
}
}
我试图用这个函数做的是 + 1 字符串末尾的数字,如果字符串没有,我将在末尾添加一个 1。
string expected
"foobar000" "foobar001"
"foo" "foo1"
"foobar025" "foobar026"
我不知道是否可以使用替换和正则表达式来实现,我想到了一个带有循环、.length、拆分等的解决方案...,但我想用正则表达式来实现,如果可能的话.
问题:如何获取字符串末尾的数字,前导零,并将它们相加为 1? 这是我的函数的一些不良行为的例子
Expected: 'foobar011', instead got: 'foobar11'
Test Passed: Value == 'foo1'
Expected: 'foobar002', instead got: 'foobar2'
Test Passed: Value == 'foobar100'
Test Passed: Value == 'foobar100'
Test Passed: Value == '1'
感恩节快乐
【问题讨论】:
-
提示:数字没有前导零。 字符串 格式的数字可能。
-
String.prototype.padStart 可以与原始数字的字符串长度一起使用
-
等等。我怎么会得到期望值?使用 Firefox 浏览器和 WebStorm
标签: javascript regex string