Javascript/jQuery:拆分camelcase字符串并添加连字符而不是空格
Javascript/jQuery: Split camelcase string and add hyphen rather than space
我想这是regex的多部分情况,但如何在大写字母处拆分一个camelcase字符串,将其转换为小写字母,然后在每个新字符串之间添加连字符?
例如:
thisString
将变成:
这个字符串
尝试以下操作:
var myStr = 'thisString';
myStr = myStr.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
回答时间较晚,但此解决方案适用于单个字母大小写为驼色的情况。
'thisIsATest'.replace(/([a-zA-Z])(?=[A-Z])/g, '$1-').toLowerCase(); // this-is-a-test
尝试以下操作:
var token = document.getElementsByTagName('strong')[0].innerHTML,
replaced = token.replace(/[a-z][A-Z]/g, function(str, offset) {
return str[0] + '-' + str[1].toLowerCase();
});
alert(replaced);
示例-http://jsfiddle.net/7DV6A/2/
字符串replace
函数的文档:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace
String.prototype.camelCaseToDashed = function(){
return this.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}
// Usage
"SomeVariable".camelCaseToDashed();
我不知道为什么所有这些解决方案都如此复杂,但我发现这已经足够了:
function camelCaseToDash(input){
// replace Capital letter with the letter + a dash: '-', then lowercase everything.
return input.replace(/([A-Z])/g, '-$1').toLowerCase();
}
//or, using a callback function, directly lowercasing.
function camelCaseToDashCallback(input){
//replace capital letter with lowercase variant + a dash '-'.
return input.replace(/([A-Z])/g, (x)=> "-"+ x.toLowerCase());
}
但是选项1通常更快:https://jsfiddle.net/4557z/17/
相关文章:
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 如何将单词(包括单词)与连字符匹配
- 删除图形和数字之间的连字符(-)符号
- JQuery根据连字符前的首字母对列表进行排序
- 如何替换javascript字符串中的前三个连字符
- 带有连字符的 Jquery 表排序器编号
- 将组成单词的字符添加到数组的开头
- 在跨度中每3个字符添加一个空格
- Javascript将所有文本框值更改为连字符
- regex中连字符的这种用法有效吗
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- 如何在 ASP.NET 文本框输入中添加连字符
- 如何向字符串添加连字符(将其格式化为 16 位序列号)
- 按enter键时,在文本区域添加连字符
- Javascript/jQuery:拆分camelcase字符串并添加连字符而不是空格
- 如何使用Jquery添加'连字符'类到P元素在Joomla中不工作
- 对于变量中的每一个新行,添加一个连字符
- 如何在 url 中的字符串之间添加连字符
- 检查最后一个字符是否为连字符(-),如果不是则添加它
- 在数据值字符串中动态添加连字符jQuery