javascript 正则表达式 驼峰式

标签 javascript regex angular

我目前正在获取 location.path 网址并将该网址显示为我的标题,如果我有“香蕉和苹果”之类的标题,我如何才能将其设为驼峰式呢?希望“and”为“And”,但只返回“Banana and Apple”

我找到了这段 JavaScript 代码,它返回了我的标题“Banana And Apple”。

function camelize(str) {
        return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
            if (+match === 0) return " "; // or if (/\s+/.test(match)) for white spaces
            return index == 0 ? match.toLowerCase() : match.toUpperCase();
        });
    }

我将 (/) 和 (-) 替换为空格

this.title = camelize(lastPartOfUrl.replace(/\/|\-/g, ' '));

var cleanUrl = lastPartOfUrl.replace(/\/-/g, ' ');
this.title = camelize(cleanUrl.replace(/-/g, ' '));

最佳答案

有基于单个正则表达式的更短的解决方案。

function camelCase(txt){
   var lower='and,or,a,in,on,'; //stop-words
   return txt //.split(/\/-/).join(' ')
           .toLowerCase().replace(/(\b.)(\S*\b)(\s|$)/g,
                      function(m/*full match*/,
                               n/*(\b.)*/,
                               p/*(\S*\b)*/,
                               q/*(\s|$)*/){
                        //console.log(n,p);
                        return (lower.indexOf(n+p+',')===-1?
                          n.toUpperCase() : n) + p + q;});
}

关于javascript 正则表达式 驼峰式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38833945/

相关文章:

javascript - 正则表达式评估,但忽略某些字符?

javascript - Angular2 表格 : trigger or update validation properly & programmatically

r - dplyr::过滤器 "No tidyselect variables were registered"

javascript - 异常 : No provider for Angular 2 custom form input

Angular 2+ Google Maps 从 map 上的点击位置获取坐标以更新标记位置

Javascript 函数排除标签

javascript - webpack可以将js转成es6吗?

javascript - Mapbox GL 图层遇到问题

javascript - 为什么我需要让我的 Electron 窗口比我的 Canvas 大?

javascript - 在 url 的路径部分之后插入 ".js"的最干净的方法?