簡體   English   中英

Javascript jQuery條帶前導和尾隨空格

[英]Javascript jQuery strip leading and trailing spaces

我想修剪值(帶前導和尾隨空格),並在每個單詞的大寫字母中寫第一個字母。 當用戶離開元素時(模糊事件)

HTML輸入如下

<input id="iptFirstName" name="iptFirstName" type="text"/> 

JS代碼

$(document).ready(function(){ 
     var iptFirstName = $("#iptFirstName");
     iptFirstName.blur(validateForename);
});


function validateForename(){
    var firstName= $("#iptFirstName").val;
    //strip leading and trailing spaces
    firstName= $.trim(firstName)
    //change first letter in every word to uppercase
    firstName= Capital(firstName);
    //update input field whit new value
    $("#iptFirstName").val(firstName);
}

function Capital(eleValue) {
    var eleValue;

    if (eleValue != "") {
        var firstLetter = eleValue.substring(0, 1).touppercase();
        var restOfWord = eleValue.substring(1, eleValue.length).tolowercase();
        eleValue = firstLetter + restOfWord;
        return eleValue;
    } 
}

請理解為什么它不起作用或者可能有更好的方法來解決這個問題。

$(document).ready(function(){ 
     var iptFirstName = $("#iptFirstName");
     iptFirstName.blur(validateForename);
});


function validateForename(){
    var firstName= $("#iptFirstName").val();
    //strip leading and trailing spaces
    firstName= $.trim(firstName)
    //change first letter in every word to uppercase
    firstName= Capital(firstName);
    //update input field whit new value
    $("#iptFirstName").val(firstName);
}

function Capital(eleValue) {
    var eleValue;

    if (eleValue != "") {
        var firstLetter = eleValue.substring(0, 1).toUpperCase();
        var restOfWord = eleValue.substring(1, eleValue.length).toLowerCase();
        eleValue = firstLetter + restOfWord;
        return eleValue;
    } 
}

嘗試此操作必須成功,只需進行少量更改,

var firstName= $("#iptFirstName").val;

var firstName= $("#iptFirstName").val();

touppercase

toUpperCase

tolowercase

toLowerCase

這樣做 -

$(document).ready(function() {
    var iptFirstName = $("#iptFirstName");
    iptFirstName.blur(function() {
        $(this).val(function() {
            return $.trim($(this).val()).replace(/(^[a-z]| [a-z])/g, function($0) {
                return $0.toUpperCase();
            })
        })
    });
});

演示-http://jsfiddle.net/ipr101/QvATH/1

你可以嘗試這個$.trim(firstName).replace(/^([az])|\\s+([az])/g, function ($1) {return $1.toUpperCase();})

您在代碼中遇到了一些錯誤

$(document).ready(function(){
     $("#iptFirstName").blur(validateForename);
});


function validateForename(){
    var firstName= $("#iptFirstName").val();
    //strip leading and trailing spaces
    firstName= $.trim(firstName);
    //change first letter in every word to uppercase
    firstName= Capital(firstName);      
    //update input field whit new value
    $("#iptFirstName").val(firstName);
}

function Capital(eleValue) {
    if (eleValue != "") {
        var firstLetter = eleValue.substring(0, 1).toUpperCase();
        var restOfWord = eleValue.substring(1, eleValue.length).toLowerCase();
        eleValue = firstLetter + restOfWord;
    }
    return eleValue;    
}

http://jsfiddle.net/b3XhL/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM