2010-10-09 6 views
0

Je veux écrire un message dans une zone de texte et pouvoir faire référence à une personne en utilisant le symbole @.Comment extraire une sous-chaîne d'une chaîne dans Jquery

par exemple

S'il vous plaît appelez @Larry David au sujet de quelque chose

En soumettant le formulaire, je veux extraire les nom des personnes-à-dire Larry David.

Comment puis-je aller sur l'extraction de cette chaîne avec JQuery?

+3

Et si le nom de la personne est 'Larry David Concernant '? Je pense que le mieux que vous pouvez faire ici est d'extraire Larry. –

+0

ou Larry David concernant? – BalusC

+0

que pensez-vous de l'utilisation du même mécanisme que SO utilise pour les étiquettes (par exemple, l'auto-complétion intelligente)? ce n'est pas une chose facile à faire bien – glebm

Répondre

5

Que faire si le nom de la personne est Larry David Regarding? Je pense que le mieux que vous pouvez faire ici est d'extraire Larry:

var result = $('#textareaId').val().match(/\@(\w+)/); 
if (result != null && result.length > 1) { 
    alert(result[1]); 
} 
1

bien correspondre à ce que vous avez demandé que ce serait:

var str = "Please call @Larry David regarding something"; 
var re = /@(\w+\s\w+)/; 

var name = str.match(re); 
if(name){ 
    alert(name[1]) 
} 

Mais il échouerait des noms comme foo-bar, O Donald, etc.

une expression régulière, comme

var re = /@(\w+\s[\w-']+)/; 

serait un peu mieux, mais encore échouera avec d'autres noms.

Sans une meilleure façon de déterminer où le nom se termine, vous pouvez avoir des erreurs avec des noms.

Questions connexes