Vous pouvez le faire en utilisant une seule expression régulière:
var reg = /^#\/projects\/(\d+)(?:\/tasks\/(\d+))?$/,
str = "#/projects/11/tasks/22",
match = str.match(reg);
if (match && !match[2])
// Match on string 1
else if (match && match[2])
// Match on string 2
else
// No match
L'expression que j'ai écrit utilise des sous-expressions pour capturer les chiffres; le résultat serait un tableau qui ressemble à ceci:
"#/projects/11/tasks/22".match(reg);
//-> ["#/projects/11/tasks/22", "11", "22"]
"#/projects/11".match(reg);
//-> ["#/projects/11", "11", undefined]
Il y a de nombreux tutoriels d'expression régulière en ligne qui vous aidera à comprendre comment résoudre les problèmes comme celui-ci - je recommande la recherche Google pour un tel tutoriel.
Merci! gentiment – AnApprentice