简体   繁体   English

如何应用正则表达式将字符串转换为驼峰式大小写并从字符串 Javascript 中删除所有特殊字符

[英]HOw to apply regex for converting a string to camel case and remove all special chars from the string-Javascript

I am converting a string to camel case and any special chars, (numbers are ok) should be removed.我正在将字符串转换为驼峰式大小写,并且应该删除任何特殊字符(数字都可以)。

var str= "NOT_AVAI";  // o/p to be"Not Avai" 
var str= "HEY0-therr";// o/p to be"Hey0 Therr"

I'm able to convert them into camelcase:我可以将它们转换为驼峰式:

return str.toLowerCase().replace(/(?:(^.)|(\s+.))/g, function(match) {
                            return match.charAt(match.length-1).toUpperCase();
                        });

but not sure how to tweak the regex in order to remove these special chars ideas??但不确定如何调整正则表达式以删除这些特殊字符的想法? Thanks!谢谢!

As @tim-hunter says, you can make it like this:正如@tim-hunter 所说,你可以这样做:

var str = "NOT_AVAI-linus";

// convert everything into lowercase
var result = str.toLowerCase()
    .replace(/(^|[^a-z0-9]+?)[a-z0-9]/ig, function (match) {
        console.log(match);
        if(match.length === 1) {
            // the 1st char
            return match.toUpperCase();
        }
        // char after special char
        return ' ' + match[1].toUpperCase()
    });

console.log(result);

Try this:尝试这个:

 const cC = str => str.replace( /[^a-z0-9]*([a-z0-9])([a-z0-9]*)/ig, (m, u, l) => u.toUpperCase() + l.toLowerCase() + ' ' ); console.log(cC("NOT_AVAI")); // o/p to be"Not Avai" console.log(cC("HEY0-therr")); // o/p to be"Hey0 Therr"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM