duai3681 2019-04-20 13:03
浏览 33
已采纳

合并数字Textarea自动[关闭]

123456 12-12 3456

How do I automatically convert the text into the Textarea field?

123456 | 12 | 12 | 3456

automatically corrected. How can I do this in Textarea?

  • 写回答

2条回答 默认 最新

  • drqn5418 2019-04-20 14:41
    关注

    You can attach a keyup event listener on your textarea and modifying it's content by splitting based on 1 or more non-digit characters and joining them with your desired pipe(|) symbol.

    document.getElementById('some_id').addEventListener('keyup',function(){
       var content = this.value.split(/[^\d]+/);
       this.value = content.join(" | ");
    });
    <textarea rows='10' cols='50' id='some_id'>
    </textarea>

    Ok, so as discussed in the comments, for your credit card formatting, you can do something like below:

    document.getElementById('some_id').addEventListener('keyup',function(){
           
           var content = this.value;
           var new_content = '';
           var temp_content = '';
           var current_length = 0;
           for(var i=0;i<content.length;++i){
               if('0123456789'.indexOf(content.charAt(i)) != -1){
                   temp_content += content.charAt(i);
                   current_length++;
               }
               
               if(current_length === 25){
                  new_content += insertPipeForCreditCardFormat(temp_content) + '
    ';
                  temp_content = '';
                  current_length = 0;
               }
           }
           this.value = new_content + temp_content;
    });
    
    function insertPipeForCreditCardFormat(credit_card){
       var pipe_indices = new Set([16,18,22]);
       var card_format = '';
        for(var i=0;i<credit_card.length;++i){
          if(pipe_indices.has(i)){
            card_format += '|';
          }
          card_format += credit_card.charAt(i);      
        }
        return card_format;
    }
    <textarea id='some_id' rows='10' cols='50'></textarea>

    </div>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题