替换输入字段内的单词

时间:2017-02-27 18:36:30

标签: javascript jquery

我的代码将字词更改为数字, 但是当我粘贴文字时:三四一一四五六一 接收: 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">
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

带有字符串的

replace避免最后一次出现。因此,您应该使用带有全局匹配的正则表达式(g标志)。

&#13;
&#13;
$('#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;});
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分: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