我有我的架构:
Schema = {
name: String,
email: String,
animal: String
};
我知道mongoose有一些方法可以帮助我大写,小写,甚至修剪我的字符串,但是如何大写?我想让我能够只用名字和电子邮件的第一个字母大写。
我该怎么做?
我正在使用表单来捕获数据,它们使用post route保存在我的数据库中,并且有一些用户键入所有lowecase,我正在尝试用css处理这个问题。
input#name {
text-transform: capitalize;
}
但这不起作用。
答案 0 :(得分:7)
最好的方法是使用功能性的Mongooses - 这应该这样做!
Schema = {
name:{
type: String,
uppercase: true
},
email: String,
animal: String
};
答案 1 :(得分:1)
CSS样式仅在可见侧,而不在数据侧。
您必须使用Javascript执行此操作:
schema.pre('save', function (next) {
// capitalize
this.name.charAt(0).toUpperCase() + this.name.slice(1);
next();
});
编辑:现在应该是正确的事情
答案 2 :(得分:1)
最佳做法
schema.pre("save", function(next) {
this.name =
this.name.trim()[0].toUpperCase() + this.name.slice(1).toLowerCase();
next();
});
答案 3 :(得分:0)
当您在JavaScript中输出名称时,您可以创建一个名称为大写的新字符串。
var capName = user.name[0].toUpperCase() + user.name.slice(1);
这将使首字母大写并将其与字符串的其余字母组合以将该字词大写并将其保存在新变量中。
答案 4 :(得分:0)
从猫鼬doc here的 String 小节下,您会找到所有可以应用于架构选项的函数。
Schema = {
name: {type: String, uppercase: true},
email: {type: String, lowercase: true, trim: true},
animal: {type: String}
};
答案 5 :(得分:0)
要大写字符串中的所有单词,您可以尝试...
personSchema.pre('save', function (next) {
const words = this.name.split(' ')
this.name = words
.map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())
.join(' ')
next()
})
如果您有化合物名,则很有用...'john doe'=>'John Doe'