为什么不将小写应用于以下替换链中的每个单词
Why isn't toLowerCase being applied to every word in the following replace chain?
我想把这个:livingRoom
变成这个Living room
:
因此,作为第一步,我想打破骆驼大小写单词并将每个单词转换为小写:
"livingRoom"
.replace(/([A-Z])/g, ' $1')
.replace(/^./, function(str){ return str.toLowerCase(); })
但是,我得到这个:
// => "living Room"
可能是什么原因?
你可以试试:
"livingRoom"
.replace(/([A-Z])/g, function(str){ return ' '+ str.toLowerCase(); })
.replace(/^.?/, function(str){ return str.toUpperCase(); })
//"Living room"
/^./
只匹配第一个字符"l",它已经是小写的。
console.log("livingRoom"
.replace(/([A-Z])/g, ' $1')
.replace(/ [A-Z]/, function(str){ return str.toLowerCase(); })
.replace(/^./, function(str){ return str.toUpperCase(); }));
^. 只是替换第一个字符
你有,
// This replace 'R' in 'livingRoom' with space + group1, which is ' R'.
.replace(/([A-Z])/g, ' $1') // Returns 'living Room'
// This finds any character after the beginning of line. which is 'l'.
.replace(/^./, function (str) { return str.toLowerCase() }); // str is 'l'
但是,例如,还有另一种简单的方法可以接近"客厅"。
var str = "livingRoom"
.replace(/([A-Z])/g, ' $1');
// str is now 'living Room'
// Uppercase the first char in str, and concat it with the lowercased rest.
str = str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
// str is now 'Living room'
相关文章:
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- 使用Javascript/Jquery将单词替换为图像
- 将元素的单词替换为空字符串
- 将每个单词替换为标签
- 无法弄清楚如何修复单词替换javascript
- Javascript 正则表达式,用于用新单词替换多个单词
- 如何用一个单词替换每个单词
- javascript中单词替换的regex
- JS:用另一个单词替换链接.嵌套引号+转义码
- 如何在阿拉伯语 JavaScript 中用数组中的两个匹配单词替换两个单词
- HTML/CSS -长单词替换为
- 用javascript中的随机单词替换段落标签内容
- Jquery:仅用第一个单词替换字符串
- Jquery每2秒用数组中的单词替换文本
- 将文本中的单词替换为javascript,但如果该单词在更大的单词中则不替换
- 将数字和电子邮件地址之间的所有单词替换为小写字母,并用下划线分隔
- 将字符串中的所有单词替换为Javascript中的新HTML字符串
- 将字符串中找到的单词替换为大小写敏感(搜索和高亮显示)
- 替换如何将每个单词替换一次
- 将字符串中的单词替换为数组中的数据