【问题标题】:jQuery: Returns only part of a textjQuery:仅返回文本的一部分
【发布时间】:2010-04-20 05:51:32
【问题描述】:

我想编写一个只返回给定文本的一部分的 jQuery 函数。比如在文中:

http://somesubdomain.somesite.com/

如何编写一个函数以返回文本“somesubdomain”?换句话说,我想“减去”文本“http://”和“.somesite.com/”。

提前致谢

【问题讨论】:

    标签: javascript jquery regex text


    【解决方案1】:
    function getSubdomain() {
        var re = /http\:\/\/(\w+)\.somesite\.com\//;
        return (re(document.location)[1]);
    }
    

    【讨论】:

    • 我很困惑为什么这个答案......它有一个参数domainString 甚至没有使用......
    • 嗯,正则表达式有效(我无法弄清楚,因为我刚刚开始理解正则表达式概念)。但是有一个问题,document.location 在那里做什么?
    • 正则表达式(正如我的回答中所解释的,虽然很简短),是一个。匹配 http:// b.在 http:// 之后匹配尽可能多的字母数字字符(即 [a-zA-Z0-9_])字符,因此这将匹配某个子域,并在反向引用中记住它。括号中的正则表达式结构使它记住数学运算的内容。 c) 最后它匹配 somesite.com/ 捕获的文本(通过反向引用)然后被返回。有关正则表达式的良好介绍,请查看regular-expressions.info
    • 感谢 Jasmeet 的详细解释。因此,使用正则表达式将创建一个数组,第一个是完整的 url,第二个是“somesubdomain”,但第三行不能只返回 (re[1]); ?
    • 第 2 行定义正则表达式,第 3 行应用正则表达式,然后返回捕获的文本。
    【解决方案2】:

    如果您为此要求一个正则表达式,那么以下(在 Perl 中)应该这样做,假设 $str 包含 http://somesubdomain.somesite.com/

    $str =~ s/http:\/\/([^.]+)\.somesite\.com\//$1/
    print $str;
    

    这会打印一些子域。

    说明 - 正则表达式从字符串 http://somesubdomain.somesite.com/ 捕获 somesubdomain 到第一个反向引用中,然后用它替换整个字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2014-01-20
      • 2021-07-01
      相关资源
      最近更新 更多