从所有单词中替换,即使用破折号分隔,第一个字符用大写[更简单的方法]
Replace from all words, even if seperated with dash, first character with uppercase [more simple way]
我让它工作了,所有变体都按原样Sint-Anna
显示,但我想知道,有没有更简单的方法,因为它看起来很混乱?
String.prototype.capitalize = function(){
var sa = this.replace(/-/g,' ');
var saa = sa.toLowerCase();
var sb = saa.replace( /(^|'s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } );
var sc = sb.replace(/'s+/g, '-');
return sc;
};
console.log('sint-anna'.capitalize());
console.log('sint anna'.capitalize());
console.log('sint-Anna'.capitalize());
console.log('Sint Anna'.capitalize());
console.log('SiNt anna'.capitalize());
console.log('SINT ANNA'.capitalize());
安慰:
Sint-Anna
Sint-Anna
Sint-Anna
Sint-Anna
Sint-Anna
Sint-Anna
没有办法像Si ntAn na
这样的错误输入导致Si-Ntan-Na
。
String.prototype.capitalize = function(){
this.split('-').map(function(str){
return str[0].toUpperCase() + str.substr(1).toLowerCase();
}).join("-")
};
我想以上会更简洁。它在-
上拆分,然后映射,将第一个字母和小写字母捕获其他字母,然后使用Array.join
与-
连接
相关文章:
- 在javascript regexp中捕获多个变量的一种更简单的方法
- 调用影子原型方法的更简单/更好的方法
- 有没有更简单的方法在 Wordpress 中为多个页面模板排队脚本
- jQuery内容幻灯片(有效,但正在寻找更简单的解决方案)
- 用于分析带引号的字符串的更简单的正则表达式
- 有没有更简单的方法在JavaScript中为Object.defineProperty编写
- 从所有单词中替换,即使用破折号分隔,第一个字符用大写[更简单的方法]
- 有没有更简单的方法来编写此代码
- 用于捕获滚动事件的跨浏览器方法(或暂时禁用滚动的更简单方法)
- 有没有更简单的方法来检查某个父元素的 N 个子元素是什么
- jQuery 更简单的方法来执行真正的向上/向下滑动
- 查找嵌套 xml 节点的更简单方法
- free-jqgrid:保存、加载和应用过滤器数据的更简单方法,包括过滤器工具栏文本和页面设置
- 有没有更简单的方法可以在 jquery 中验证我的表单而不是我所拥有的?
- 更改多个对象的类的更简单方法
- 有没有更简单的方法可以在一个 UL 中获取 LI 列表编号
- JS加载顺序 - 滚动JS禁用,回调解决方案,或者更简单
- 在循环中使用 .getValue().这会导致许多调用.有没有更简单的方法可以做到这一点
- 有没有更简单的方法可以为不同的选择器链接不同的 jQuery 操作,然后嵌套 $.when
- 用JavaScript创建DOM树的一种更简单的方法