从js中的字符串url获取特定字符

时间:2016-06-18 10:17:56

标签: javascript

我有一个包含http://example.com/user/9800的刺痛,我希望能够从该字符串中获取域名(http://example.com),而不管字符串的长度如何。见下面的解释

var string  = "http://example.com/user/9800";

var string  ="http://www.example.com/user/8399";

新字符串

var new string = "http://example.com";

4 个答案:

答案 0 :(得分:2)

这是一个粗略的正则表达式模式,使用js:

来完成这项工作
var string  = "http://example.com/user/9800";
/*string can be any url*/
var ns=string.replace(/(\w+:\/\/[\w\d\.\:]*)\/(.*)/g,"$1");
alert(ns);

答案 1 :(得分:1)

使用简单但通用的正则表达式来提取域名:

/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)/im

你可以这样使用它:

var domain = url.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)/im);
if (domain) {
    console.log(domain[0]);
}

一个例子:



function doMatch() {
  var url = $("#urltext").val();
  var domain = url.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)/im);
  if (domain) {
    alert(domain[0]);
  }
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Enter url here: <input type="text" id="urltext" />
<br/><input type="button" onclick="doMatch()" value="try me!" />
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使用以下正则表达式:/(.+?(?=\/user))/。这将捕获/user之前的所有内容,然后您可以通过获取第二个结果(第一个是原始字符串)来使用它。请查看以下代码段:

var re = /(.+?(?=\/user))/; 
var str1 = 'http://example.com/user/9800';
var newstr1 = re.exec(str1)[1];
console.log(newstr1);
var str2  ="http://www.example.com/user/8399";
var newstr2 = re.exec(str2)[1];
console.log(newstr2);

答案 3 :(得分:0)

使用此代码:

&#13;
&#13;
<html>
    <head>
    </head>
        <body>
            <p id="x"></p>
            <script>
                var x = document.getElementById("x");
                var str = "https://example.com/user/9800";
                var patt = /(http:\/\/|https:\/\/)+.*.com/gmi;
                x.innerHTML = str.match(patt);
            </script>
        </body>
    </html>
&#13;
&#13;
&#13;