2012-04-23 12 views
0

tousersの値には、セミコロンで区切られたユーザーがあります。jqueryの値をセミコロンで区切って

<input type='text' class='tousers' value='admin;user1;user2;user3;useradmin;' /> 

セミコロンの間に既にadminが存在する場合はどうすれば検索できますか?したがって、既に存在するため、以下のコードではadmintousersに追加しません。

var content = 'admin'; 

var to = input.find('.tousers').val(); 

if(to == "") { 
    input.find('.tousers').val(content); 
} else { 
    input.find('.tousers').val(to + ';' + content); 
} 

答えて

1

がまだ利用できない場合、これは

$(function(){ 
     var newContent = 'user1'; 
     var existingContent=$(".tousers").val() 
     var existingArr=existingContent.split(";") 
     var isPresent=$.inArray(newContent ,existingArr)  
     if(isPresent<0) 
     {  
      $(".tousers").val(existingContent+newContent+";"); 
     } 
     else  
     { 
     alert("Already present"); 
     }  
    }); 

ワーキング「既に存在している」という警告を表示する他、tousers入力要素に新しい項目が追加されますサンプル:http://jsfiddle.net/WsELx/11/

0
if(/\badmin\b/.test('admin;user1;user2;user3;useradmin;')) // has admin inside your string 

またはあなたの場合は

if(/\badmin\b/.test(to)) 

文字列の正規表現\badmin\b検索、 - 2つのワード境界あなたが定期的に使用することができ

1
var content = 'admin'; 

var text = jQuery('.rousers').val(); 

var values = text.split(';') 

var contentExists = jQuery.inArray(content, values) 
+1

'もし' administrator'が 'admin'の代わりに値に入ったらどうしますか? – user892134

+0

@ user892134:そうです、私はそれを修正しました。 – Andrey

1

で囲まれた管理者のための文字列が既に値に含まれているかどうかをテストする式:

new RegExp("(^|;)" + content + "(;|$)").test(to) 

(のindexOfを使用して不足している)

+0

これはまだテストされていませんが、RegExpの使用方法はありません。チュートリアルをお勧めしますか? – user892134

+0

(^ |;)は、文字列の先頭またはセミコロンに一致し、同様に、(; | $)は文字列の末尾またはセミコロンに一致します。 – jamalex

+0

これは当初、正規表現を学ぶために使用したサイトでした: http://www.regular-expressions.info/ – jamalex

0

あなたが使用することができ$.inArray(value, array)

var content = 'admin'; 
var to = $('.tousers').val(); 
var array = to.split(';'); 

if ($.inArray(content, array) == -1){ 
    $('.tousers').val(to + ';' + content); 
} 
関連する問題