Как применить регулярное выражение для преобразования строки в регистр верблюдов и удалить все специальные символы из строки-Javascript - PullRequest
0 голосов
/ 15 января 2019

Я конвертирую строку в регистр верблюдов и любые специальные символы (числа в порядке) должны быть удалены.

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

Я могу перевести их в верблюжий корпус:

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

но не уверен, как настроить регулярное выражение, чтобы удалить эти специальные символы идеи ?? Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Попробуйте это:

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"
0 голосов
/ 15 января 2019

Как говорит @ 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...