制作文本字段的Javascript有首字母和小写字母

时间:2015-10-02 21:15:36

标签: javascript lowercase capitalization

我使用的是具有有限编辑功能的表单软件,但允许添加java脚本。通常我想使用PHP这样的东西,但在这种情况下,我将不得不使用Javascript,我很少有经验。

基本上在我的目标网页上,我有一个人们可以提交的表单。 名字 姓 电子邮件 等

问题是 - 我邮件合并提交,当人们输入他们的名字作为BOB SMITH或bob smith而不是Bob Smith时,当我发送这封电子邮件时,它会使它看起来不专业。所以我想在这个登录页面添加一个javascript,当表单提交时,它会转换first_name文本字段和last_name文本字段中的字符串,使第一个字母大写,其余为小写。另一个问题是我不认为我可以编辑表单属性,所以如果可能的话,这个javascript基本上会在页面的顶部,并希望我没有编辑文本字段属性来激活它...任何帮助非常感谢。

由于

4 个答案:

答案 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>

或访问https://gist.githubusercontent.com/isaacdozier/5ae92c1da9622c77df4c9a70a9f9a849/raw/a81c877e77a3c0c3a795ac40bbf6721950cb2e05/read-names.js

处的原始文件

调用这样的函数:

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();
    }
  );
}