剥离变量中的文本:javascript

时间:2010-06-23 15:01:38

标签: javascript jquery string strip

考虑像

这样的变量
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 个答案:

答案 0 :(得分:4)

无需争论URL字符串。浏览器有自己的URL解析器,您可以使用location的{​​{1}}类似属性访问:

HTMLAnchorElement

答案 1 :(得分:1)

如果要使用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

答案 2 :(得分:0)

您可以使用RegExp对象。

答案 3 :(得分:0)

var url='http://www.example.com/index.php?id=ss';
url = url.replace(/^.*?:\/\/(.*?)\/.*$/, "$1");

alert(url);

答案 4 :(得分:0)

使用子字符串和indexOf的替代方法:)

/* 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 );
}