【问题标题】:Capitalizing the letter following a dash and removing the dash将破折号后面的字母大写并删除破折号
【发布时间】:2011-08-25 22:44:36
【问题描述】:

如果你还没有从标题中猜到,我正在尝试使用 JS 将 CSS 属性语法转换为 JS 语法。这意味着我想获取输入“margin-top”并将其转换为“marginTop”。我知道这可以通过几行代码和替换函数轻松完成,但我想知道正则表达式是否有更简单、更紧凑的解决方案。

所以,我的问题是我将使用什么正则表达式来替换 -\w 不带破折号并且单词的第一个字母大写。如果这碰巧不可能,那么使用替换功能的最简约的解决方案是什么?

感谢您的帮助。

【问题讨论】:

    标签: javascript css regex syntax uppercase


    【解决方案1】:
    'margin-top-something'.replace(/(-.)/g,function(x){return x[1].toUpperCase()})
    

    【讨论】:

      【解决方案2】:

      如果你在jQuery source 中搜索camelCase,你会发现这个函数:

      function camelCase (string) {
          return string.replace( /-([a-z])/ig, function( all, letter ) {
              return letter.toUpperCase();
          });
      }
      

      (除了在那里,正则表达式和回调是分开定义的)。

      【讨论】:

      • 当破折号后面有数字时,该函数无法删除破折号。 “this-is-1-test”返回为“thisIs-1Test”。将正则表达式更改为 /-([a-z]|[0-9])/ig 修复它,所以我们得到“thisIs1Test”。
      猜你喜欢
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      相关资源
      最近更新 更多