У меня есть эта функция в PHP:JavaScript Regex не заменяет, как и ожидалось
function sanitizeKey($str){
$str = strtolower($str);
$str = preg_replace('/[^\da-z ]/i', '', trim(ucwords($str)));
$str = str_replace(" ", "", $str);
$str = lcfirst($str);
return $str;
}
При запуске против Manufacture's P/N
выход является manufacturesPn
.
Я перезапись ту же функцию в JavaScript, и до сих пор этот код:
str = "Manufacture's P/N";
str = str.toLowerCase()
.replace(/\b[a-z]/g, function(letter) { // php's ucwords
return letter.toUpperCase();
});
str = str.trim(); // remove leading & trailing whitespace
str = str.replace("/[^\da-z ]/i", ''); // keep alphanumeric
str = str.replace(/\s+/g, ''); // remove whitespace
str = str.replace(/\b[a-z]/g, function(letter) { // php's lcfirst
return letter.toLowerCase();
});
console.log(str);
На данный момент, если я вход Manufacture's P/N
токовый выход Manufacture'SP/N
.
Вопрос Как изменить код JavaScript для репликации PHP-программы, чтобы он выдавал тот же результат для одного и того же ввода?
@whoever Если вы используете downvote, пожалуйста, будьте любезны, чтобы объяснить, почему. – 3zzy