创建一个正则表达式来替换字符串中最后一次出现的字符

Sun*_*nny 5 javascript regex string replace

我需要创建一个正则表达式,无论字符串中的空格如何,该表达式都应查找最后的“ *”。然后,我需要用一些文本替换该字符串。

当前,它将替换字符串中首次出现的“ *”。

我如何解决它?

这是我的代码:

const regex = /\*/m;
const str = 'Field Name* * ';
const replaceStr = ' mandatory';
const result = str.replace(regex, replaceStr);
console.log('Substitution result: ', result);
Run Code Online (Sandbox Code Playgroud)

在此,输出应为“字段名称*必填”。但是我得到的是“必填字段名称*”。

Tus*_*har 4

String#substring使用and代替正则表达式,String.lastIndexOf如下所示

const str = 'Field Name* * ';
const replaceStr = 'mandatory';
const lastIndex = str.lastIndexOf('*');
const result = str.substring(0, lastIndex) + replaceStr + str.substring(lastIndex + 1);

console.log('Substitution result: ', result);
Run Code Online (Sandbox Code Playgroud)

仍然想使用正则表达式?

const regex = /\*([^*]*)$/;
const str = 'Field Name* * Hello World!';
const replaceStr = ' mandatory';
const result = str.replace(regex, (m, $1) => replaceStr + $1);
console.log('Substitution result: ', result);
Run Code Online (Sandbox Code Playgroud)