当前位置: 首页 > 知识库问答 >
问题:

将下划线替换为空格并将单词大写

秦涵涤
2023-03-14

我正在尝试创建一种方法,将小写字母和下划线的文本转换为没有下划线的文本,并且每个单词的第一个字母都是大写的。

前;

options_page = Options Page

在这个页面上:如何在JavaScript中使所有单词的第一个字符大写?

我找到了这个正则表达式:

key = key.replace(/(?:_| |\b)(\w)/g, function(key, p1) { return p1.toUpperCase()});

除了用空格替换下划线之外,这可以完成所有操作。我没有真正尝试过任何东西,因为我对正则表达式不是很熟悉。

如何调整这个正则表达式,使它用空格替换下划线?

共有3个答案

白镜
2023-03-14

这是两个不同的任务,因此两个不同正则表达式是最佳解决方案:

key = key.replace(/_/g, ' ').replace(/(?: |\b)(\w)/g, function(key) { return key.toUpperCase()});

确保甚至所有大写单词都得到处理。您可以在第一个 .replace 之前添加 .to降低案例():

console.log('TESTING_WORD'.toLowerCase().replace(/_/g, ' ')
.replace(/(?: |\b)(\w)/g, function(key, p1) {
    return key.toUpperCase();    
}));
谷梁楷
2023-03-14

从Lodash 3.1.0开始,就有了< code>_。startCase([string=''])将任何大小写转换为大写单词的方法(开始大小写):

_.startCase('hello_world'); // returns 'Hello World'
_.startCase('hello-world'); // returns 'Hello World'
_.startCase('hello world'); // returns 'Hello World'

Lodash的String部分中还有其他有用的方法。请阅读此处的文档。

袁开宇
2023-03-14

这应该可以做到:

function humanize(str) {
  var i, frags = str.split('_');
  for (i=0; i<frags.length; i++) {
    frags[i] = frags[i].charAt(0).toUpperCase() + frags[i].slice(1);
  }
  return frags.join(' ');
}


console.log(humanize('humpdey_dumpdey'));
// > Humpdey Dumpdey
 类似资料:
  • 问题内容: 我正在尝试使用此代码用_替换空格,它适用于字符串中的第一个空格,但所有其他空格实例均保持不变。有人知道为什么吗? 问题答案: 尝试 编辑 :或者如果您对RE厌恶 如果您要通过静态搜索和静态替换来搜索和替换字符串,则使用.split(“match”)。join(“replace”)来执行操作会更快,这似乎违反直觉,但它可以正常工作在大多数现代浏览器中都是这样。(在下一版本的Firefox

  • 问题内容: 我需要一个过滤器来将所有下划线替换为字符串中的空格 问题答案: 不仅接受字符串作为第一个参数,而且接受正则表达式作为第一个参数。因此,将它放在regex分隔符和aslo add 修饰符中。称为全局修饰符,它将在全局范围内进行替换。

  • 在我的html页面中,我在标签中有很多字符串。喜欢 我需要将它们全部放在属性TRANSLATE中,将它们小写,并将字符串中的所有空格替换为下划线。 所以我用按住的CTRL多选了所有这些,然后按住K,Ctrl L使它们小写,CTRL x - 擦除,两个左箭头用于进入标签内部,写翻译=“粘贴在这里” 现在我有了 下一步-我需要用下划线代替空格。 要查找所有翻译字符串,我使用正则表达式 (?s)翻译 =

  • 问题内容: 我想用字符串中的下划线替换空格,以创建漂亮的URL。因此,例如: 我在Django中使用Python。可以使用正则表达式解决吗? 问题答案: 您不需要正则表达式。Python有一个内置的字符串方法可以满足您的需要:

  • 问题内容: 我有一个PHP脚本,用户将输入一个名称,例如:, 但是,某些用户将使用空格而不是下划线,因此我的问题是: 如何在PHP中使用下划线自动替换空格? 问题答案:

  • 我想用下划线替换字符串中除第一个单词外的所有字符,但我的代码用下划线替换所有字符。 预期结果:你好_________