我使用的是具有有限编辑功能的表单软件,但允许添加java脚本。通常我想使用PHP这样的东西,但在这种情况下,我将不得不使用Javascript,我很少有经验。
基本上在我的目标网页上,我有一个人们可以提交的表单。 名字 姓 电子邮件 等
问题是 - 我邮件合并提交,当人们输入他们的名字作为BOB SMITH或bob smith而不是Bob Smith时,当我发送这封电子邮件时,它会使它看起来不专业。所以我想在这个登录页面添加一个javascript,当表单提交时,它会转换first_name文本字段和last_name文本字段中的字符串,使第一个字母大写,其余为小写。另一个问题是我不认为我可以编辑表单属性,所以如果可能的话,这个javascript基本上会在页面的顶部,并希望我没有编辑文本字段属性来激活它...任何帮助非常感谢。
由于
答案 0 :(得分:1)
这是我最近创建的Javascript Gist for building human-readable names,可以满足您的需求,还可以增加一些额外费用。
我不会尝试解释,而是,这里有一些例子:
//dan macdonald -> Dan MacDonald [call true]
//dAN mCdOnAlD -> Dan McDonald [call true]
//paz y MIño -> Paz y Miño [call true]
//BEN d'hosier -> Ben D'Hosier
//sara ma'afala -> Sara Ma'afala
包含在您的页面中,如下所示:
<script src="https://gist.github.com/isaacdozier/5ae92c1da9622c77df4c9a70a9f9a849.js">
</script>
处的原始文件
调用这样的函数:
capsFullName('john SMITH')
输出'John Smith'
或者
capsFullName('sara y gonzalez', true)
输出'Sara y Gonzalez'
注意:capsFullName('sara y gonzalez')
输出'Sara Y Gonzalez'
答案 1 :(得分:0)
您可以使用以下功能:
function capitalizeFirstLetter(str) {
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
}
它接收一个参数,并返回大写的第一个字母+小写的其余字符串。
答案 2 :(得分:0)
我认为它几乎就像Will P所说的那样,但是:
function ucFirst(s) {
return s.substr(0,1).toUpperCase() + s.substr(1).toLowerCase();
}
function camelCase(s) {
var a=s.split(" ");
for(var i in a) a[i]=ucFirst(a[i]);
return a.join(" ");
}
...因为你也需要姓Cameled。 (现在你可以将它绑定到更改事件。或者你认为合适的地方。)
根据Will的说法,最终版本看起来像是:
$(function () {
$("input").on("change", function () {
$(this).val(camelCase($(this).val()));
});
});
希望我没有弄乱括号:)
答案 3 :(得分:0)
如果你有多个名字/单词,这将使他们全部......
function getProperCase(sText) {
return sText.replace(
/([^\W_]+[^\s-]*) */g,
function(s){
return s.charAt(0).toUpperCase() + s.substr(1).toLowerCase();
}
);
}