小编Seb*_*ner的帖子

如何在JavaScript正则表达式中找到组的索引匹配?

当我写一个正则表达式,如:

var m = /(s+).*?(l)[^l]*?(o+)/.exec("this is hello to you");
console.log(m);
Run Code Online (Sandbox Code Playgroud)

我得到一个包含以下内容的匹配对象:

{
  0: "s is hello",
  1: "s",
  2: "l",
  3: "o",
  index: 3,
  input: "this is hello to you"
}
Run Code Online (Sandbox Code Playgroud)

我知道整个比赛的索引来自该index属性,但我还需要知道匹配的组的开始和结束.使用简单的搜索将无法正常工作.在这个例子中,它将找到第一个'l'而不是在组中找到的那个.

有没有办法获得匹配组的偏移量?

javascript regex

17
推荐指数
2
解决办法
9860
查看次数

如何使用CORS访问iframe

当用户打印时,我的服务器生成PDF,我这样做是为了显示PDF的打印对话框.

$('<iframe type="application/pdf"></iframe>').attr('src', url).load(function() {
    var iframe = this;
    setTimeout(function() { //Chrome PDF viewer shows "Loading..." forever otherwise
        iframe.contentWindow.print();
        $(iframe).remove(); //gc
    }, 50);
}).appendTo('body');
Run Code Online (Sandbox Code Playgroud)

但现在我在S3上托管PDF.我明白了

Uncaught SecurityError: Blocked a frame with origin "https://localhost" from
accessing a frame with origin "https://my-bucket.s3.amazonaws.com".
Protocols, domains, and ports must match.
Run Code Online (Sandbox Code Playgroud)

我认为我需要添加CORS头.

我有

Access-Control-Allow-Methods: GET, HEAD
Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

javascript iframe cors

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

如何将Firebug恢复到旧版本?

我今天打开了一个Firefox,点击了Firebug按钮,它向我展示了在新版本中它被集成到开发人员工具中.

我点击确定并意识到它根本不起作用(每次使用Inspect Element时<body>都会选择该元素).所以我想恢复该设置,但我找不到在哪里切换它.我尝试重新安装Firebug,但该设置存储在某处,因此它会自动启动DevTools而不是Firebug.

任何帮助如何恢复到经典的Firebug?

firefox firebug

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

如何在Delphi中解析JSON字符串?

我该如何解析JSON字符串

{"data":{"results":[{"Branch":"ACCT590003"}]}}
Run Code Online (Sandbox Code Playgroud)

使用TJSONObject对象?我想ACCT590003从这个字符串中获取值.

delphi json delphi-xe

16
推荐指数
5
解决办法
4万
查看次数

如何使用CSS选择器使用BeautifulSoup检索位于某个类中的特定链接?

我是Python的新手,我正在学习它用于抓取目的我使用BeautifulSoup来收集链接(即'a'标签的href).我正在尝试收集网站http://allevents.in/lahore/的"UPCOMING EVENTS"标签下的链接.我正在使用Firebug来检查元素并获取CSS路径,但此代码没有返回任何内容.我正在寻找修复程序以及如何选择适当的CSS选择器以从任何站点检索所需链接的一些建议.我写了这段代码:

from bs4 import BeautifulSoup

import requests

url = "http://allevents.in/lahore/"

r  = requests.get(url)

data = r.text

soup = BeautifulSoup(data)
for link in soup.select( 'html body div.non-overlay.gray-trans-back div.container div.row div.span8 div#eh-1748056798.events-horizontal div.eh-container.row ul.eh-slider li.h-item div.h-meta div.title a[href]'):
    print link.get('href')
Run Code Online (Sandbox Code Playgroud)

css python firebug beautifulsoup css-selectors

16
推荐指数
3
解决办法
4万
查看次数

定义全局变量x时,Firebug会中断

我们有一个非常大的JavaScript应用程序,经过几个月的编码后,不可避免地出现了几个范围滑点,其中定义变量而不使用var以下方式的关键字:

function() {  
  x = 5; ...  
}
Run Code Online (Sandbox Code Playgroud)

代替:

function() {  
  var x = 5; ...  
}
Run Code Online (Sandbox Code Playgroud)

这发生在某个地方 - 我们不确定在哪里 - 并且搜索有问题的变量名称很困难,因为它是我们源代码中出现1000次的常用词.

有没有办法让Firebug在首先创建给定全局变量的行上中断?为了澄清,我想在window.x切换undefined到定义值的时刻和break语句中断.

我已经尝试创建一个监视表达式,并希望我可以把它变成一个断点,但我似乎无法在没有某种上下文或范围的情况下创建监视表达式.

如果使用Firebug无法做到这一点,我会对能在Firefox中完成此任务的任何事情感兴趣.

javascript debugging firefox firebug scope

15
推荐指数
1
解决办法
2250
查看次数

Eclipse中有没有办法改变ECMAScript合规性级别?

在Eclipse 4.5(Mars)中安装了JavaScript开发工具(JSDT),ECMAScript的默认合规级别设置为ECMAScript 3,已经过时了.并且用于更改合规性级别的相关下拉列表已取消激活,因此无法更改该选项.有没有办法将这些设置更改为更新的标准,如ECMAScript 5ECMAScript 2015

JavaScript验证程序首选项不允许更改ECMAScript合规性级别

javascript eclipse ecmascript-5 ecmascript-6

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

如何利用CSS利用第一线?::第一行伪元素不起作用

现在我有一个段落,我想把整个第一行的资本化.我已将第一段设置为ID"firstp"并尝试:

#firstp::first-line {
  text-transform: uppercase;
}
Run Code Online (Sandbox Code Playgroud)

我已尝试过,text-transform: capitalize但这也无效.这很奇怪,因为我设法改变了第一个字母(改变了字体大小)#firstp:first-letter.

css line capitalize css-selectors pseudo-element

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

有没有办法在调试JavaScript时更改变量值?

我在这段代码上有一个断点(使用Firebug):

if (validator.formValidate([dom.forumid]))
Run Code Online (Sandbox Code Playgroud)

我怎样才能跳过这个验证部分并进入该if条款,即使我dom.forumid的无效,即对formValidate()退货的要求false?那我怎么能让它回来true

我在考虑修改JavaScript,但我不知道是怎么做的.

javascript debugging firebug

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

按键事件发生后如何获取文本光标位置?

我正在写一个语法荧光笔.突出显示器应在输入文本并使用箭头键导航时立即更新突出显示.

我面临的问题是,当'keypress'事件被触发时,你仍然可以获得文本光标的旧位置window.getSelection().

例:

function handleKeyEvent(evt) {
  console.log(evt.type, window.getSelection().getRangeAt(0).startOffset);
}

var div = document.querySelector("div");
div.addEventListener("keydown", handleKeyEvent);
div.addEventListener("keypress", handleKeyEvent);
div.addEventListener("input", handleKeyEvent);
div.addEventListener("keyup", handleKeyEvent);
Run Code Online (Sandbox Code Playgroud)
<div contenteditable="true">f<span class="highlight">oo</span></div>
Run Code Online (Sandbox Code Playgroud)

在示例中,将插入符号放在单词"foo"之前,然后按(向右箭头键).

在您最喜欢的DevTool的控制台中,您将看到以下内容:

keydown 0
keypress 0
keyup 1
Run Code Online (Sandbox Code Playgroud)

0除了keypress显然是旧插入位置.如果你再坚持一下,你会得到这样的东西:

keydown 0
keypress 0
keydown 1
keypress 1
keydown 1
keypress 1
keydown 2
keypress 2
keyup 2
Run Code Online (Sandbox Code Playgroud)

我想得到的是新的插入位置,就像我将其用于'keyup'或'input'.虽然'keyup'被触发得太晚了(我想在按下键时突出显示语法)并且'input'仅在实际有一些输入时触发(但不产生任何输入).

插入符号位置发生变化后是否会触发事件而不仅仅是输入?或者我是否必须计算文本光标的位置,如果是,如何计算?(我认为当文本换行并按下(向下箭头键)时,这会变得非常复杂.)

javascript dom keyboard-events dom-events

13
推荐指数
1
解决办法
9944
查看次数