javascript自定义人性化过滤器

javascript自定义人性化过滤器,javascript,regex,string,humanize,Javascript,Regex,String,Humanize,我坚持为我的项目创建定制的人性化功能。 我的API正在检索我想要转换为更可读的标签,例如: 违约概率 我想把它改成 违约概率 或 历史日期 把它换成 历史日期 到目前为止,我已经编写了一个函数,但它只将字母改为大写,并没有在每个字母前添加空格。这是: var humanize = function(property) { return property.replace(/_/g, ' ') .replace(/(\w+)/g, function(match) { return m

我坚持为我的项目创建定制的人性化功能。 我的API正在检索我想要转换为更可读的标签,例如:

违约概率

我想把它改成

违约概率

历史日期

把它换成

历史日期

到目前为止,我已经编写了一个函数,但它只将字母改为大写,并没有在每个字母前添加空格。这是:

var humanize = function(property) {
  return property.replace(/_/g, ' ')
  .replace(/(\w+)/g, function(match) {
    return match.charAt(0).toUpperCase() + match.slice(1);
  });
};
我不是一个专家,在定期的经验,我也不是不知道有任何图书馆可以为我这样做。有什么帮助吗?

您可以使用:

s = 'probabilityOfDefault';
r = s[0].toUpperCase() + s.substring(1).replace(/([a-z])(?=[A-Z])/g, "$1 ");
//=> Probability Of Default

我有更极端的例子,比如:“some1e1a3stringa1c”把它改成“some1e1a3stringa1c”,你能让它工作吗?嗯,这改变了很多问题。您可以尝试:
“Some1e1A3String”。替换(/([a-z])(?=[0-9A-z])|([0-9])(?=[a-z][a-z])/g,“$1$2”)