我正在尝试创建一种方法,将小写字母和下划线的文本转换为没有下划线的文本,并且每个单词的第一个字母都是大写的。
前;
options_page = Options Page
在这个页面上:如何在JavaScript中使所有单词的第一个字符大写?
我找到了这个正则表达式:
key = key.replace(/(?:_| |\b)(\w)/g, function(key, p1) { return p1.toUpperCase()});
除了用空格替换下划线之外,这可以完成所有操作。我没有真正尝试过任何东西,因为我对正则表达式不是很熟悉。
如何调整这个正则表达式,使它用空格替换下划线?
这是两个不同的任务,因此两个不同正则表达式是最佳解决方案:
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();
}));
从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部分中还有其他有用的方法。请阅读此处的文档。
这应该可以做到:
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中使用下划线自动替换空格? 问题答案:
我想用下划线替换字符串中除第一个单词外的所有字符,但我的代码用下划线替换所有字符。 预期结果:你好_________