2013-03-07 8 views
0

J'ai une chaîne tmp qui est comme suit# spécial de caractère dans une chaîne

<a href="#" class="quickLinks" id="linkQL">Quick Links</a> 

Je voudrais être en mesure de savoir qu'il ya un # après href = .. Je pensais faire de cette façon si (tmp.indexOf (« # ») == 8) mais je ne suis pas en mesure, je pense que parce que # est un caractère spécial

+0

Cela semble être une bonne correspondance pour les expressions régulières. Et, en passant, il n'y a rien de spécial à propos de '# 'dans les littéraux de chaînes Java. – NPE

+1

Que voulez-vous dire par "je ne suis pas capable de"? tmp.indexOf ('#') devrait retourner 9. – longhua

+0

Si vous voulez juste vérifier que la chaîne '#' arrive après la chaîne 'href' (par exemple dans un attribut' id' après le href), alors vous pouvez utilise une regex. Si vous voulez vérifier si '#' est dans l'attribut 'href', alors vous devriez utiliser un analyseur html. – theon

Répondre

0

var tmp = '<a href="#" class="quickLinks" id="linkQL">Quick Links</a>';
tmp.indexOf('#');
Ce retour est 9 et il est le résultat attendu.

+0

La question est étiquetée '[java]', et cela ne me ressemble pas à Java valide ... – NPE

+0

+1 Mais une réponse très à point. –

1

Pour tester si # suit href, vous pouvez simplement ceci:

if (input.contains("href=\"#\"")) 

Il n'y a pas besoin d'impliquer regex, et le char dièse # est pas spécial en Java, mais les caractères à double citation besoin échapper .

+0

Les guillemets simples sont html valides, ou au moins supportés par les navigateurs. Je suppose que cela dépend de l'origine du code HTML, à quel point vous êtes sûr de son apparence. – theon

0

essayer regex

boolean matches = s.matches(".+href\\s*=\\s*['\"]#['\"].+"); 
1

Si vous voulez vérifier l'attribut href contient un #, utilisez un analyseur HTML comme jsoup

Document doc = Jsoup.parse(html); 
String href = doc.select("a").first().attr("href"); 
boolean isHash = href.equals("#"); 

Si vous voulez vraiment juste vérifier si le il y a # n'importe où sur la ligne après un href, vous pouvez utiliser Regex - mais je soupçonne que ce n'est pas ce que vous voulez.

Questions connexes