我真的需要您的帮助,因为这远远超出了我的javascript编码能力。

我想设计一个函数来完成以下两种情况之一:


如果字符串var'fileno'的末尾没有破折号和数字,则重写字符串fileno并在其末尾添加破折号和计数。

var fileno ='测试'

var c = 4

fileno ='test-4'
如果字符串中已经有破折号和数字,则将破折号替换为下面的新信息:

var fileno ='test-2'

var c = 3

fileno ='test-3'

最佳答案

您可以对String.prototype.replace()使用正则表达式:

fileno = fileno.replace(/-\d+$|$/, '-' + c);


它的字面意思是:用-{number}替换字符串末尾的-{c}或什么都不是。



var c = 3;

console.log( 'test'.replace(/-\d+$|$/, '-' + c) );
console.log( 'test-4'.replace(/-\d+$|$/, '-' + c) );

09-28 07:35