编辑 看着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)
第二行的大括号是什么以及为什么使用它们?为什么第一行没有括号?
如果我有一个主机名,例如:http://sample.example.com,我在Javascript中,我window.location.hostname
会得到"example.com"或"sample.example.com"吗?
如果没有,我怎样才能获得sample.example.com?
我有这些字符串:
baseUrl = "http://www.example.com"
baseUrl = "https://secure.example-server.com:443"
Run Code Online (Sandbox Code Playgroud)
有人能告诉我如何从baseUrl中提取服务器信息,这样我就可以得到"example"和"example-server"
我有一个函数,使用正则表达式返回给定网址的根域.
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似乎不适用于我的情况.
给出网站地址,例如
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
这仍然是最好的基于正则表达式的解决方案:
那么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返回公共后缀的函数,或者在公共后缀列表上实现以下算法:
我正在编写一个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语句将被实现为哈希表.对于像我这样的小脚本,这里的速度可能并不重要,我只是把它作为一个练习.
在这段代码中:
if (screen.width <= 800) {
window.location = "http://www.megaoferta.bg/mobile";
}
Run Code Online (Sandbox Code Playgroud)
如何识别使用JavaScript打开页面的URL?
例如,如果用户从Google搜索进入我的网页,我该如何使用JavaScript获取"google.com"页面?
我一直很难使用正则表达式,但我认为现在我有合法的需求,而且我不确定是否可以使用它们来实现它.
我想要一个正则表达式,在执行时,返回给定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,我不能用本地位置对象做这个,但我一定是错的.
代码的大小必须特别小,因为它必须在页面的标题中同步加载.它最终可能会被复制到每个页面而不是作为外部文件包含在内.所以,起初,我更喜欢不依赖外部依赖.