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

如何应用正则表达式将字符串转换为驼峰大小写,并从字符串Javascript中删除所有特殊字符,javascript,regex,Javascript,Regex,我正在将字符串转换为驼峰大小写,任何特殊字符(数字都可以)都应该被删除 var str= "NOT_AVAI"; // o/p to be"Not Avai" var str= "HEY0-therr";// o/p to be"Hey0 Therr" 我可以将它们转换为camelcase: return str.toLowerCase().replace(/(?:(^.)|(\s+.))/g, function(match) { r

我正在将字符串转换为驼峰大小写,任何特殊字符(数字都可以)都应该被删除

var str= "NOT_AVAI";  // o/p to be"Not Avai" 
var str= "HEY0-therr";// o/p to be"Hey0 Therr"
我可以将它们转换为camelcase:

return str.toLowerCase().replace(/(?:(^.)|(\s+.))/g, function(match) {
                            return match.charAt(match.length-1).toUpperCase();
                        });
但不知道如何调整正则表达式以删除这些特殊字符
思想??谢谢

正如@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);
试试这个:

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_avi”);//o/p为“不可用”

console.log(cC(“HEY0 therr”);//o/p为“Hey0 Therr”
您可以使用
/[^A-Za-z0-9]+/g
正则表达式查找所有非字母和数字字符,然后将其删除。