在字符串中替换-84:" my-name-is-dude-84"与''通过正则表达式?

时间:2017-06-21 09:57:44

标签: javascript regex

如何替换字符串中的-84my-name-is-dude-84''正则表达式? 我的意思是最后一个' - ' +号

我试过了:

string = 'my-name-is-dude-84'; 
let regex = /[^\-*][1-9]/; 
let specialChar = string.replace(regex, '');

然后我收到的是我的名字是dude- 我希望我的字符串是:my-name-is-dude

2 个答案:

答案 0 :(得分:3)

你关闭了,但这是你需要做的(我猜)



string = 'my-name-is-dude-84'; 
let regex = /-\d+$/; 
let specialChar = string.replace(regex, '');
document.write(specialChar);




您的[^\-*]尝试匹配所有字符 \-*。此外[1-9]仅匹配一位数(1到9之间)。使用\d(所有数字),添加+以使其匹配一个或多个。此外,在其中添加字符串$的结尾使其仅匹配字符串末尾的连字符+数字。

答案 1 :(得分:3)

您可以使用此正则表达式(.*?)-\d+$

regex demo

JavaScript演示

string = 'my-name-is-99-dude-84'; 
let regex = /(.*?)-\d+$/; 
let specialChar = string.replace(regex, "$1");
document.write(specialChar);