正则表达式从给定字符串中删除下划线

时间:2019-12-16 15:05:56

标签: javascript regex replace

我尝试使用String替换方法和正则表达式转换字符串。如何删除给定字符串中的下划线?

let string = 'court_order_state'
string =  string.replace(/_([a-z])/g, (_, match) => match.toUpperCase())
console.log(string)

预期结果:

COURT ORDER STATE

5 个答案:

答案 0 :(得分:3)

您可以使用JavaScript replace函数,将其作为输入传递:

  • /_/g作为searchvalue参数(g修饰符用于执行全局匹配, ie 查找所有匹配,而不是在第一个匹配之后停止) ;
  • 空白空间)作为newvalue参数。

let string = 'court_order_state'
string = string.replace(/_/g, ' ').toUpperCase();
console.log(string);

答案 1 :(得分:1)

在您的代码中,您可以匹配和下划线或字符串(?:_|^)的开头,以匹配第一个单词,并使用量词[a-z]+匹配a + z 1倍以上

然后在每次调用UpCase之后添加一个空格。

let string = 'court_order_state';
string = string.replace(/(?:_|^)([a-z]+)/g, (m, g1) => g1.toUpperCase() + " ");
console.log(string)

答案 2 :(得分:0)

let string = 'court_order_____state'
string =  string.replace(/_+/g, ' ').toUpperCase()
console.log(string)

答案 3 :(得分:0)

可以很简单,如下所示:

let string = 'court_order_state'
    string = string.replace(/_/g, ' ').toUpperCase();
    console.log(string);

这里的'g'代表全局,而'/'被我们所寻找的东西包围。

答案 4 :(得分:0)

您可以简单地将整个字符串转换为大写,然后将_替换为空格,而不是将每个_后面的第一个字符都变成大写(从您使用的正则表达式开始),而不用将它们替换为大写字母, >

let string = 'court_order_state';
string = string.toUpperCase().replace(/_+/g, " ");
console.log(string);