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 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗