如何使用Javascript从字符串中间提取文本?

如何使用Javascript从字符串中间提取文本?,javascript,regex,Javascript,Regex,我有这些字符串: baseUrl = "http://www.example.com" baseUrl = "https://secure.example-server.com:443" 有人能告诉我如何从baseUrl提取服务器信息,以便获得“示例”和“示例服务器”您可以使用regex: baseUrl.match(/\.(.*?)\.co/i)[1]; 正则表达式解释 /:正则表达式的分隔符 \.:匹配文字(需要转义) ():捕获组 *?:匹配任何字符串 co:匹配字符串co i:区分大

我有这些字符串:

baseUrl = "http://www.example.com"
baseUrl = "https://secure.example-server.com:443"

有人能告诉我如何从baseUrl提取服务器信息,以便获得“示例”和“示例服务器”

您可以使用
regex

baseUrl.match(/\.(.*?)\.co/i)[1];
正则表达式解释

  • /
    :正则表达式的分隔符
  • \.
    :匹配
    文字(需要转义)
  • ()
    :捕获组
  • *?
    :匹配任何字符串
  • co
    :匹配字符串
    co
  • i
    :区分大小写匹配
  • [1]
    :获取捕获组
  • 正则表达式可视化


    看看这个免费库:。

    您可以使用split(“.”)在某些字符处拆分字符串;(见附件) 然后,您可以将结果与预定义的单词进行比较


    或者取结果的第二个元素,通常(?)就是您要查找的内容。

    如果您只想提取两个
    '之间的字符串。
    s(或
    URL
    中的域名),您可以尝试以下方法:

    var firstDotPos = baseUrl.indexOf(".");
    var secondDotPos = baseUrl.indexOf(".",firstDotPos);
    var yourString = baseUrl.substring(firstDotPos + 1, 18);
    console.log(yourString )
    

    您可以使用
    split()
    将其拆分为一个数组,并使用
    slice()
    提取所需的数组,如下所示:

    输入 输出
    可能重复的正则表达式。这里只有一个正则表达式。希望这有帮助。
    baseUrl = "http://www.example.com"
    baseUrl2 = "https://secure.example-server.com:443"
    const base = baseUrl.split(".")
    const base2 = baseUrl2.split(".")
    console.log("Array1 :: ",base)
    console.log("Array2 : ",base2)
    console.log(base.slice(-2,-1))
    console.log(base2.slice(-2,-1))
    
    Array1 :: ["http://www","example","com"]
    Array2 : ["https://secure","example-server","com:443"]
    ["example"]
    ["example-server"]