2017-02-27 55 views
0

我的代碼更改字號碼, 但是當我粘貼,如文本:三四一一三四五六一 得到: 3411456one輸入字段內更換的話

如果我再次點擊文本輸入,一更改爲1 但我希望它在第一次粘貼時順利運行。

$('#word').on('change keyup paste',function(){ 
 
var a=document.getElementById('word').value; 
 
var b=a 
 
.replace('zero','0') 
 
.replace('one','1') 
 
.replace('two','2') 
 
.replace('three','3') 
 
.replace('four','4') 
 
.replace('five','5') 
 
.replace('six','6') 
 
.replace('seven','7') 
 
.replace('eight','8') 
 
.replace('nine','9') 
 
.replace('','') 
 
document.getElementById('word').value=b;});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input id="word" type="text">

+0

請在這裏發表代碼,而不是隻是撥弄。 –

回答

1

replace用繩子避免最後出現。因此,您應該使用正則表達式與全局匹配(g標誌)。

$('#word').on('change keyup paste input',function(){ 
 
var a=document.getElementById('word').value; 
 
var b=a 
 
.replace(/zero/g,'0') 
 
.replace(/one/g,'1') 
 
.replace(/two/g,'2') 
 
.replace(/three/g,'3') 
 
.replace(/four/g,'4') 
 
.replace(/five/g,'5') 
 
.replace(/six/g,'6') 
 
.replace(/seven/g,'7') 
 
.replace(/eight/g,'8') 
 
.replace(/nine/g,'9') 
 
.replace('',''); 
 
document.getElementById('word').value=b;});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
<div style="position:absolute;top:10px;left:12px;width:310px"> 
 
<br> 
 
<br> 
 
<input id="word" type="text"> 
 
<table id="get" style="line-height:0px" alt=""><tbody></tbody></table> 
 
</div> 
 
<div style="position:absolute;top:10px;right:200px;text-align:center"> 
 
<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script> 
 
<script src=''></script> 
 
</div> 
 
</body>

+0

工作,謝謝! :) –

1

此時應更換全球發生。 replace函數替換第一次出現,並且當您添加替換所有出現的/g時。

$('#word').on('change keyup paste',function(){ 
var a=document.getElementById('word').value; 
var b=a 
.replace(/zero/g,'0') 
.replace(/one/g,'1') 
.replace(/two/g,'2') 
.replace(/three/g,'3') 
.replace(/four/g,'4') 
.replace(/five/g,'5') 
.replace(/six/g,'6') 
.replace(/seven/g,'7') 
.replace(/eight/g,'8') 
.replace(/nine/g,'9') 
.replace('','') 
document.getElementById('word').value=b;}); 

demo

+0

@SURESH ATTA工作,謝謝! :) –