6
votes

JavaScript Regex pour obtenir une chaîne avant la note d'interrogation si elle est présente

J'ai cette chaîne: #test ou #test? params = quelque chose xxx

J'ai toujours besoin d'obtenir seulement #test. La fonction que j'ai collée renvoie une erreur si aucune marque d'interrogation n'est trouvée. L'objectif est de toujours retourner #test s'il existe des paramètres supplémentaires ou non. Comment faire une regex qui le retourne?


1 commentaires

En règle générale, vous devez utiliser des méthodes de modification de chaîne directe (telles que Split, Strows, Substring, etc.) au lieu de regex, lorsqu'il n'y a pas de besoin spécifique de regex. J'irais avec la méthode suggérée par James.


5 Réponses :


4
votes

est cette chaîne directe de l'URL de la page en cours?

Si tel est le cas, vous pouvez simplement utiliser: xxx

si vous visitez http://example.com/#test?params=Something , le code ci-dessus retournera" #test ".

tests xxx


1 commentaires

OP a demandé une regrette spécifiquement, votre solution utilise la scission



1
votes

Vous pouvez utiliser:

var regExp = /^([^?]+)/;


0 commentaires

3
votes
^(.*?)(?=\?|$)
You can try this.See demo.https://regex101.com/r/vN3sH3/25

1 commentaires

@Anonymous y a-t-il plus de types d'intrants? Pouvez-vous les ajouter aussi



0
votes

soit je manque quelque chose ou simplement:

 ^#\w+


0 commentaires

2
votes

Alternative simple: xxx


1 commentaires

OP a demandé une regrette spécifique, votre solution utilise SUBSTR