我試着寫一個函數,將第一個字到星號畢竟charactewrs轉換,轉換角色,以星號在Javascript
說我有MYFIRSTWORD MYSECONDWORD,ID希望它轉換爲上KEYUP星號,但僅限於第二個字,使其作爲如此...
MYFIRSTWORD * **
我已經使用了每一個字母下面僅將它轉換,這可能嗎?
$(this).val($(this).val().replace(/[^\s]/g, "*"));
我試着寫一個函數,將第一個字到星號畢竟charactewrs轉換,轉換角色,以星號在Javascript
說我有MYFIRSTWORD MYSECONDWORD,ID希望它轉換爲上KEYUP星號,但僅限於第二個字,使其作爲如此...
MYFIRSTWORD * **
我已經使用了每一個字母下面僅將它轉換,這可能嗎?
$(this).val($(this).val().replace(/[^\s]/g, "*"));
我不知道有一個正則表達式做,但你可以這樣做:
$("input").keyup(function() {
var i = this.value.indexOf(" ");
if (i > -1) {
this.value = this.value.substr(0, i)
+ this.value.substr(i).replace(/[\S]/g, "*");
}
});
你應該試試這個代碼
var array = $(this).val().split(" ");
var newValue = "";
for(var i=0; i<array.length; i++) {
if (i==0){
newValue = array[i];
continue;
} else{
newValue+= array[i].replace(/[^\s]/g, "*");
}
}
$(this).val(newValue);
修復代碼中的語法錯誤。 – ThiefMaster
如果你不介意如何改善這個問題的一些建議:你可以初始化newValue到array [0],然後從i = 1運行你的循環來避免if/else。考慮到你已經將字符串分割爲空格,你的正則表達式可能只是'/./g'不可能的?我認爲你需要將一些空格連接回輸出字符串。 – nnnnnn
這裏不需要使用'continue'。 – kapa
'this.value = this.value.replace(...);'這裏不需要jQuery。 –
你是說「TEST1 TEST2 TEST3」會變成「TEST1 ***** *****」嗎? –
是的,這是正確的 – Liam