如何检查数组中的@(at),并在检查后删除此符号

时间:2013-04-11 19:00:15

标签: javascript jquery validation

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

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') - a可能只留下课程以了解它是@

3 个答案:

答案 0 :(得分: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>');
}

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

这应该可以解决问题:

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);