2010-03-11 5 views
8

Quelqu'un peut-il recommander un moyen d'obtenir le nom de la page d'une URL en utilisant JavaScript?Obtenir l'URL de la page en utilisant javascript

Par exemple, si j'ai:

http://www.cnn.com/news/1234/news.html?a=1&b=2&c=3 

J'ai juste besoin d'obtenir la chaîne "news.html"

Merci!

+1

J'aime la solution de TJ – Alex

Répondre

14

Vous pouvez le faire assez facilement par l'intermédiaire window.location.pathname analyse syntaxique:

var file, n; 

file = window.location.pathname; 
n = file.lastIndexOf('/'); 
if (n >= 0) { 
    file = file.substring(n + 1); 
} 
alert(file); 

... comme d'autres l'ont dit, vous pouvez le faire avec une expression rationnelle sur une ligne. Une ligne un peu dense, mais avec un commentaire au-dessus, devrait être un bon moyen d'y aller.

+2

+1 Je suis impressionné par la puissance de regex, mais je ne peux pas les lire. –

3
var url = "http://www.cnn.com/news/1234/news.html?a=1&b=2&c=3"; 
url = url.replace(/^.*\//, "").replace(/\?.*$/, ""); 

Vous pouvez remplacer url avec window.location

+0

Comme une note, en faisant window.location.replace (/ ^.*\//, "") .replace (/\?.*$/, ""); vous redirigera. – contactmatt

5

Je pense qu'il est

window.location.pathname.replace(/^.*\/([^/]*)/, "$1"); 

Ainsi,

var pageTitle = window.location.pathname.replace(/^.*\/([^/]*)/, "$1"); 
+0

Je pense que vous devez échapper à des slashs là-bas. :) –

+0

oui je l'ai eu - merci !! – Pointy

+0

Nice! Je n'ai jamais entendu parler de 'pathname'! –

0

Vous pouvez également trouver des chemins de fichiers sur un disque local, et vous pouvez ne pas inclure de hachage ou d'obtenir des chaînes dans le chemin-

String.prototype.fileName= function(){ 
var f, s= this.split(/[#\?]/, 1)[0].replace(/\\/g,'/'); 
s= s.substring(s.lastIndexOf('/')+ 1); 
f= /^(([^\.]+)(\.\w+)?)/.exec(s) || []; 
return f[1] || ''; 
} 
Questions connexes