Разделение текстов в переменной: javascript - PullRequest
1 голос
/ 23 июня 2010

Рассмотрим переменную как

var url='http://www.example.com/index.php?id=ss';

или

var url='http://www.example.com/dir1/dir2/index.php';

В этих переменных я хочу получить только часть домена, т.е. http://www.example.com, исключая другие тексты. Это возможно в обычном javascript или jquery?

Пожалуйста, помогите

Ответы [ 5 ]

4 голосов
/ 23 июня 2010

Нет необходимости разбирать строки URL.В браузере есть собственный анализатор URL, доступ к которому можно получить с помощью location -подобных свойств HTMLAnchorElement:

var a= document.createElement('a');
a.href= 'http://www.example.com/index.php?id=ss';

alert(a.protocol); // http
alert(a.hostname); // www.example.com
alert(a.pathname); // /index.php
alert(a.search);   // ?id=ss
// also port, hash
1 голос
/ 23 июня 2010

Если вы хотите сделать это явно с URI, то вы можете использовать для этого библиотеку js URI.Пример библиотеки, например js-uri

var url=new URI('http://www.example.com/dir1/dir2/index.php');
var sch = uri.scheme // http
var auth = uri.authority // www.example.com
0 голосов
/ 23 июня 2010
var url='http://www.example.com/index.php?id=ss';
url = url.replace(/^.*?:\/\/(.*?)\/.*$/, "$1");

alert(url);
0 голосов
/ 23 июня 2010

Альтернатива с использованием подстрок и indexOf's:)

/* FUNCTION: getBaseUrl
 * DESCRIPTION: Strips a url's sub folders and returns it
 * EXAMPLE: getBaseUrl( http://stackoverflow.com/questions
 *   /3102830/stripping-texts-in-a-variable-javascript );
 * returns -- http://stackoverflow.com/
 */
function getBaseUrl( url ) {
    if ( url.indexOf('.') == -1 || url.indexOf('/') == -1 ) { return false; }

    var result = url.substr(0, url.indexOf( '/' , url.indexOf('.') ) + 1 );
    return( result );
}
0 голосов
/ 23 июня 2010

Вы можете использовать RegExp объект.

...