相关疑难解决方法(0)

围绕javascript变量名称的{花括号}是什么意思

编辑 看着JSHint后,我发现这个" 解构表达"是ES6提供(使用esnext选项)或Mozilla JS扩展(使用MOZ) 看完后却我还是不明白为什么它被用来

我在MDN上遇到了以下代码

var ui = require("sdk/ui");
var { ActionButton } = require("sdk/ui/button/action");
Run Code Online (Sandbox Code Playgroud)

第二行的大括号是什么以及为什么使用它们?为什么第一行没有括号?

javascript firefox firefox-addon

145
推荐指数
1
解决办法
5万
查看次数

如何使用window.location获取子域?

如果我有一个主机名,例如:http://sample.example.com,我在Javascript中,我window.location.hostname会得到"example.com"或"sample.example.com"吗?

如果没有,我怎样才能获得sample.example.com?

javascript subdomain hostname

6
推荐指数
6
解决办法
2万
查看次数

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

我有这些字符串:

baseUrl = "http://www.example.com"
baseUrl = "https://secure.example-server.com:443"
Run Code Online (Sandbox Code Playgroud)

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

javascript regex

4
推荐指数
1
解决办法
6919
查看次数

Javascript简单的正则表达式找到根域

我有一个函数,使用正则表达式返回给定网址的根域.

http://jsfiddle.net/hSpsT/

function cleanUp(url) {
  url = url.replace(new RegExp(/^\s+/),""); // START
  url = url.replace(new RegExp(/\s+$/),""); // END

  // IF FOUND, CONVERT BACK SLASHES TO FORWARD SLASHES
  url = url.replace(new RegExp(/\\/g),"/");

  // IF THERE, REMOVES 'http://', 'https://' or 'ftp://' FROM THE START
  url = url.replace(new RegExp(/^http\:\/\/|^https\:\/\/|^ftp\:\/\//i),"");

  // IF THERE, REMOVES 'www.' FROM THE START OF THE STRING
  url = url.replace(new RegExp(/^www\./i),"");
  //remove slash from end
  url = url.replace(new RegExp(/\/$/i),"");    
  return url;
}
Run Code Online (Sandbox Code Playgroud)

但它使用多重正则表达式,我们担心性能.有没有更好的方法在一行正则表达式中做同样的事情?

注意:

document.location.host似乎不适用于我的情况.

javascript regex

3
推荐指数
1
解决办法
8233
查看次数

从R中的url返回根域

给出网站地址,例如

http://www.example.com/page1/#
https://subdomain.example2.co.uk/asdf?retrieve=2
Run Code Online (Sandbox Code Playgroud)

如何返回根域R,例如

example.com
example2.co.uk
Run Code Online (Sandbox Code Playgroud)

为了我的目的,我将定义根域具有结构

example_name.public_suffix
Run Code Online (Sandbox Code Playgroud)

其中example_name排除"www",public_suffix在此列表中:

https://publicsuffix.org/list/effective_tld_names.dat

这仍然是最好的基于正则表达式的解决方案:

/sf/answers/594904061/

那么R根据公共后缀列表解析根域的内容如下:

http://simonecarletti.com/code/publicsuffix/

编辑:根据理查德的评论添加额外信息

使用XML::parseURI似乎返回第一个"//"和"/"之间的东西.例如

> parseURI("http://www.blog.omegahat.org:8080/RCurl/index.html")$server
[1] "www.blog.omegahat.org"
Run Code Online (Sandbox Code Playgroud)

因此,问题减少为具有R可以从URI返回公共后缀的函数,或者在公共后缀列表上实现以下算法:

算法
  • 将域与所有规则进行匹配,并记下匹配的规则.
  • 如果没有规则匹配,则通行规则为"*".
  • 如果多个规则匹配,则主要规则是作为例外规则的规则.
  • 如果没有匹配的例外规则,则主流规则是具有最多标签的规则.
  • 如果主要规则是例外规则,请通过删除最左边的标签来修改它.
  • 公共后缀是来自域的标签集,其直接匹配主要规则的标签(由点连接).
  • 已注册或可注册的域名是公共后缀加上一个附加标签.

r domain-name public-suffix-list

3
推荐指数
1
解决办法
1109
查看次数

这可以用switch语句写吗?

我正在编写一个Safari扩展,并希望检测我当前在哪个页面(网址),并做相应的事情.

现在我的代码看起来像:

if (linkHas("facebook.com")) {...}
else if (linkHas("google.com")) {...}
else if (linkHas("yahoo.com")) {...}
Run Code Online (Sandbox Code Playgroud)

where linkHas()是一个函数,如果它有参数,基本上返回1,否则返回0.

是否可以编写这一个单一的switch语句?我已经读过某个地方,如果有超过5个选项,那么switch语句将被实现为哈希表.对于像我这样的小脚本,这里的速度可能并不重要,我只是把它作为一个练习.

javascript micro-optimization

3
推荐指数
2
解决办法
83
查看次数

获取重定向到此页面的URL

在这段代码中:

if (screen.width <= 800) {
    window.location = "http://www.megaoferta.bg/mobile";
}
Run Code Online (Sandbox Code Playgroud)

如何识别使用JavaScript打开页面的URL?

例如,如果用户从Google搜索进入我的网页,我该如何使用JavaScript获取"google.com"页面?

javascript referrer

0
推荐指数
1
解决办法
79
查看次数

用于在Javascript中获取URL组件的正则表达式

我一直很难使用正则表达式,但我认为现在我有合法的需求,而且我不确定是否可以使用它们来实现它.

我想要一个正则表达式,在执行时,返回给定URL的所有组件.它不是用于验证格式:前提条件是传递正确的URL(通常是它location.href).

期望的组件是:

  • 方案
  • 端口(可选)
  • 路径
  • 请求参数

奖金:

  • 单独查询字符串参数
  • 分段
  • 用户密码

例子:

/regex/.exec('http://www.stackoverflow.com/questions/1/regex-for-getting-url-components-in-javascript') --> ["http://stackoverflow.com/questions/30868359/regex-for-getting-url-components-in-javascript", "http", "www.stackoverflow.com", undefined, "questions/30868359/regex-for-getting-url-components-in-javascript"]

/regex/.exec('https://localhost:8080/?a=1&b=2') --> ["http://www.stackoverflow.com/questions/1/regex-for-getting-url-components-in-javascript", "https", "localhost", "8080", "", "a=1&b=2"]


编辑:

为了澄清,我需要的是一个小代码,它创建一个代表URl的对象.然后我必须能够修改参数,模式等组件,并再次将结果作为字符串.AFAIK,我不能用本地位置对象做这个,但我一定是错的.

代码的大小必须特别小,因为它必须在页面的标题中同步加载.它最终可能会被复制到每个页面而不是作为外部文件包含在内.所以,起初,我更喜欢不依赖外部依赖.

javascript regex

-3
推荐指数
1
解决办法
145
查看次数