【发布时间】:2016-09-03 06:08:24
【问题描述】:
我在 PHP 中有这个功能:
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 如果您投反对票,请解释原因。
标签: javascript php regex