Javascript/jQuery:拆分camelcase字符串并添加连字符而不是空格

use*_*007 57 javascript regex split camelcasing

我认为这是一个带有正则表达式的多部分情况,但是如何将大写字母的camelcase字符串拆分为小写字母,然后在每个新字符串之间添加连字符?

例如:

thisString

会成为:

这串

Wou*_*r J 123

尝试类似的东西:

var myStr = 'thisString';

myStr = myStr.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
Run Code Online (Sandbox Code Playgroud)

  • 我认为你需要.toLowerCase,但无论哪种方式我都得到-thisstring (2认同)
  • 可能想在那里抛出一个/ g:myStr.replace(/([az])([AZ])/ g,'$ 1- $ 2').toLowerCase() (2认同)

Syo*_*yon 19

迟到的答案,但这个解决方案适用于单个字母骆驼套装的情况.

'thisIsATest'.replace(/([a-zA-Z])(?=[A-Z])/g, '$1-').toLowerCase();  // this-is-a-test
Run Code Online (Sandbox Code Playgroud)


xan*_*ded 5

请尝试以下方法:

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);
Run Code Online (Sandbox Code Playgroud)

示例 - http://jsfiddle.net/7DV6A/2/

字符串replace函数的文档:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace