小编Car*_*ham的帖子

正则表达式检查新行

我想检查if语句是在一行还是下一行没有括号如下:

if (blah === blah)
    do something
Run Code Online (Sandbox Code Playgroud)

要么:

if (foo === foo) do something
Run Code Online (Sandbox Code Playgroud)

我目前的正则表达式是

/\)(?!.*\{)/
Run Code Online (Sandbox Code Playgroud)

但不起作用.有人有主意吗?

要详细说明此正则表达式不会提取的唯一If语句如下:

if (foo === bar)
{
Run Code Online (Sandbox Code Playgroud)

php regex

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

Laravel阻止updated_at更新特定查询

我正在使用标准updated_atcreated_at桌子.

我的结果是按顺序排列的,updated_at因为它们可以编辑.

但是,在页面上我正在更新行计数器(视图).这意味着updated_at将使用新的日期/时间更新,但我想阻止这一点.

有没有办法做到这一点?或者我将不得不created_at用来订购我的结果?

我宁愿不使用自己的手册created_atupdated_at

php mysql laravel

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

Rspec测试耙任务

我有一个简单的rake任务用puts

namespace :atask
  task something: :environment do
    puts 'Foo'
  end
end
Run Code Online (Sandbox Code Playgroud)

我的规格如下

describe 'atask:something' do
  before { MyApp.Application.load_tasks }

  context 'one' do
    it do
      Rake::Task['atask:something'].invoke
    end
  end

  context 'two' do
    it do
      Rake::Task['atask:something'].invoke
    end
  end

  context 'three' do
    it do
      Rake::Task['atask:something'].invoke
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

如您所见,它具有3个上下文和3个块。因此,我应该在控制台中三遍看到“ Foo”,每次调用任务一次。但是,即使被调用了三次,我在控制台中也只能看到一次“ Foo”。

ruby rake rspec ruby-on-rails

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

处理嵌套散列以将所有值转换为字符串

我有以下代码,它采用散列并将所有值转换为字符串。

def stringify_values obj
  @values ||= obj.clone

  obj.each do |k, v|
    if v.is_a?(Hash)
      @values[k] = stringify_values(v)
    else
      @values[k] = v.to_s
    end
  end

  return @values
end
Run Code Online (Sandbox Code Playgroud)

所以给定以下哈希:

{
  post: {
    id: 123,
    text: 'foobar',
  }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下YAML输出

--- &1
:post: *1
:id: '123'
:text: 'foobar'
Run Code Online (Sandbox Code Playgroud)

当我想要这个输出时

--- 
:post: 
  :id: '123'
  :text: 'foobar'
Run Code Online (Sandbox Code Playgroud)

看起来对象已被展平,然后被赋予了对自身的引用,这会导致我的规范中出现堆栈级别错误。

如何获得所需的输出?

ruby hash ruby-on-rails

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

在 HTML5 Web Worker 中使用地理定位

我想使用 HTML5 Web Worker 定期向静态服务器报告经度和纬度 - 即使选项卡未处于焦点状态。我的问题是,我通常访问 HTML5地理定位功能的方式在 Web Worker 中不可用。

我尝试过的是将地理位置对象从我的主文件发送到网络工作人员。但是,这不起作用,我收到以下错误:

未捕获的 DataCloneError:无法在“Worker”上执行“postMessage”:无法克隆对象。

接下来,我尝试导入一个 JavaScript 库,该库提供名为Geolocator 的地理定位服务。但后来我发现我无权访问worker中的库(我认为是因为worker无权访问DOM)。

因此,为了解决这个问题,我将这个 JavaScript 库的源代码直接添加到工作文件中,但这不起作用,因为我无权访问在Geolocatorwindow的源代码中重复使用的内容。

我想做的事情可能吗?我可以使用任何替代方案吗?

html javascript geolocation web-worker

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

如何加倍数组值

我有一个数组:

arr = ["a", "b", c"]
Run Code Online (Sandbox Code Playgroud)

我希望将值加倍

arr = ["a", "b", c", "a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)

(不是特别的顺序).

在JavaScript中使用它的最佳方法是什么?

javascript arrays

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

SailsJS,SocketIO,没有收到消息

我有一个简单的登录脚本.我在SessionController中创建了一个名为create的方法来处理登录.我执行所有必需的验证,然后将用户设置为活动并保存它们.我还用User.publishUpdate()它将消息发送回客户端.

问题是我根本没有收到任何消息.当页面加载时,我呼叫User.subscribe(req.socket, users);所有用户,以便他们都订阅.不确定为什么不发送消息.

我使用风帆0.10.0.

这是在页面加载时调用的subscribe方法:

User.find({}).exec(function (error, users) {
    if (error) {
        res.json({
            error: error
        });
    }

    // Subscribe to the model class
    User.subscribe(req.socket);

    // subscribe to the model instance
    User.subscribe(req.socket, users);

    res.send(200);

});
Run Code Online (Sandbox Code Playgroud)

和登录的创建方法(删除与此问题无关的代码):

user.active = true;
req.session.authenticated = true;
req.session.User = user;

user.save(function (error, user) {

    if (error) {
        res.send(error, 500);
    }

    User.publishUpdate(user.id, {
        loggedIn: true,
        id: user.id,
        action: ' has logged in'
    });

    res.json(user, 200); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js socket.io sails.js

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

Rails"尝试"一个常量

我通过构建命名空间和名称以及使用来加载序列化程序constantize.

如果序列化器不存在则会抛出未初始化的常量错误.

在将名称转换为常量之前,有什么方法可以尝试常量或主动检查序列化程序是否存在?

ruby serialization activerecord ruby-on-rails

2
推荐指数
1
解决办法
839
查看次数

无效的正则表达式:单独的量词括号

我有一个可以接受这些格式的 html 电话模式:

+61 x xxxx xxxx,
+61xxxxxxxxx,
0x xxxx xxxx,
0xxxxxxxxx,
xxxx xxxx,
xxxxxxxx,
+xx xxx xxx xxx,
+xxxxxxxxxxx,
0xxx xxx xxx,
0xxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

几个月前它正在工作,现在突然我的电话字段没有验证。我有这个错误:

Pattern attribute value ^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](?:[\.\-\s]?\d\d){4}|(\d{4}[\s]\d{4})|(\d{8})|(\d{4}[\s]\d{3}[\s]\d{3})|(\+61\[\s]\d{3}[\s]\d{3}[\s]\d{3})|(\+61\s\d{3}\s\d{3}\s\d{3})$ is not a valid regular expression: Uncaught SyntaxError: Invalid regular expression: /^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](?:[\.\-\s]?\d\d){4}|(\d{4}[\s]\d{4})|(\d{8})|(\d{4}[\s]\d{3}[\s]\d{3})|(\+61\[\s]\d{3}[\s]\d{3}[\s]\d{3})|(\+61\s\d{3}\s\d{3}\s\d{3})$/: Lone quantifier brackets 
Run Code Online (Sandbox Code Playgroud)

regex

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

Ruby on Rails | Ruby on Rails 被阻止的主机: localhost

我在这个问题上被困了几个小时,只是想找到这个问题的答案。

我从 Mac 终端开始$ rails s,它加载 puma 并且工作正常,直到我遇到下图中所附的问题。

在此输入图像描述

ruby terminal ruby-on-rails

2
推荐指数
1
解决办法
3516
查看次数