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

时间:2015-07-07 07:38:52

标签: javascript regex

我有这些字符串:

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

有人可以告诉我如何从baseUrl中提取服务器信息,这样我就可以获得“example”和“example-server”

5 个答案:

答案 0 :(得分:9)

您可以使用regex

baseUrl.match(/\.(.*?)\.co/i)[1];

正则表达式解释

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

    enter image description here

答案 1 :(得分:2)

您可以使用split(“。”)在某些字符处拆分字符串; (见http://www.w3schools.com/jsref/jsref_split.asp) 然后,您可以将结果与预定义的单词进行比较。

或者你取结果的第二个元素,通常(?)就是你要找的东西。

答案 2 :(得分:1)

看看这个免费的图书馆:http://medialize.github.io/URI.js/

答案 3 :(得分:1)

如果您只想在两个'.'(或URL中的域名)之间提取字符串,可以试试这个:

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

答案 4 :(得分:0)

您可以使用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"]