【问题标题】:How to check @ (at) in array, and remove this symbol after checking [duplicate]如何检查数组中的@(at),并在检查后删除此符号[重复]
【发布时间】:2025-12-29 08:55:16
【问题描述】:

我有一个包含多个条目的数组。其中一些在开头包含@。这是一个数组的例子:

some string  
@another string  
@one more string  
the best string  
string with email@mail.com

我使用这部分代码进行验证和分组(目前只检查@

  if(linesArray[i] ===  '@'){
    $('#test').append('<li class="string_with_at">'+linesArray[i]+'</li>');
  }else{
    $('#test').append('<li class="string_no_at">'+linesArray[i]+'</li>');
  }

我的问题是:

  1. 如何检查第一组的@ 行开头?
  2. 如何从结果中删除此符号 ('li'+linesArray+'/li') - 可能只留下类以了解它是 @

【问题讨论】:

    标签: javascript jquery validation


    【解决方案1】:

    怎么样:

    if(linesArray[i][0] ===  '@') { //checking the first symbol
       //remove first element from result
       $('#test').append('<li class="string_with_at">'+linesArray[i].substring(1)+'</li>');
    }
    else {
       $('#test').append('<li class="string_no_at">'+linesArray[i]+'</li>');
    }
    

    【讨论】:

    • 出于兼容性原因,最好使用.charAt(0) 而不是[0]
    • IE7 不支持它并不奇怪。谢谢你的评论!
    • 太棒了!非常感谢!
    【解决方案2】:

    如果在位置0,删除'@'并返回新格式化的字符串的功能:

    removeAt = function(s){
        if(s.charAt(0) == '@')
          return s.substring(1);
        return s;
    }
    

    【讨论】:

      【解决方案3】:

      这应该可以解决问题:

      function addElement (val) {
          var match = val.match(/^(@)(.*)/),
              at    = match[1],
              str   = match[2],
              li    = $('<li/>').html(str)
      
          li.addClass('string_' + (at ? 'with' : 'no') + '_at');
      
          $('#test').append(li);
      }
      
      linesArray.forEach(addElement);
      

      【讨论】: