在keypress jquery上替换部分输入值?

时间:2017-02-16 22:37:13

标签: javascript jquery

例如我有,输入类型具有预定义的长度。 当输入值大于或等于3时,我想实现用'/'替换字符串[3]的那部分;

<input type="text" id="number" maxlength="6" placeholder="MM/YY"/>

这是jquery

$('#number').on('keypress',function(){
if(this.value.length <= 3) {
this.value.replace(this.value[3],'/');  
}
});

因此,简而言之,当用户在输入字段内键入时,例如:1234,数字3需要替换为'/',而值将是12/2017,如信用卡的到期日期。提前致谢

2 个答案:

答案 0 :(得分:4)

你可以尝试这样的事情。必须将输入值的最大长度从6更改为7.

尝试例如二千零十七分之十二。

$('#number').on('keypress', function() {
  if (this.value.length >= 2) {
    this.value = this.value.slice(0, 2) + '/' + this.value.slice(3, this.value.length)
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="number" maxlength="7" placeholder="MM/YY" />

答案 1 :(得分:0)

您可以尝试以下操作。

其中delimeterIndeces是您要检查的字符串中的位置并更改值。 InputString是从输入标记返回的字符串。

&#13;
&#13;
function flatten(data, outputArray) {
      outputArray.push(<ul>)
        data.forEach(function (asset){
            if(asset.children.length) {
              outputArray.push(<li><button onClick={_ => this.appendAssets(asset.name)}>{asset.name}</button></li>);
              flatten(asset.children, outputArray);
            }
            else{
              outputArray.push(<li><button onClick={_ => this.appendAssets(asset.name)}>{asset.name}</button></li>);
            }
        });
      outputArray.push(</ul>)
    }
&#13;
&#13;
&#13;