小编Rob*_*low的帖子

符合W3C标准的URL的正则表达式?

我正在尝试为符合HTML5"url"输入类型(将在JavaScript中使用)的W3C标准的URL找到正则表达式.

请参阅W3C规范的要求.

两种可能性:

  1. 我发现这个关于URL正则表达式的其他StackOverflow 问题看起来非常有希望:

  2. 存在一个HTML5表单验证jQuery插件 - 它应该模拟HTML5表单验证功能.

此脚本使用以下正则表达式:

/(https?|ftp):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?/ 
Run Code Online (Sandbox Code Playgroud)

我不知道剩下的这个,但乍一看它似乎在规范的"可能被空间包围"部分失败了.

有没有其他人试过这样做呢?有谁知道我在哪里可以找到兼容的正则表达式?

塔,罗宾.

javascript regex url html5 uri

8
推荐指数
1
解决办法
3300
查看次数

固定元素在滚动时移动到页面顶部 - 仅限CSS

我希望产生这个页面上的效果:http://jonrohan.me/guide/css/creating-triangles-in-css/ - 但只有CSS,没有JavaScript(这对JavaScript来说是微不足道的) .

我正在谈论的效果如下:

  • 最初,您会看到页眉和文章标题.
  • 当你滚动页面标题消失.
  • 文章标题固定在页面顶部,因此您在滚动时始终会看到它.

到目前为止我设法达到的最好成绩是:
http://jsfiddle.net/nottrobin/2FSvx/
但我不喜欢<nav>我的解决方案中固有的重复.

有没有人有任何聪明的CSS/3技术,他们可以想到这样做,以便当你向下滚动并<header>消失时,<nav>自然会骑到页面的顶部?

html css html5 noscript css3

7
推荐指数
1
解决办法
6460
查看次数

编写一个python模块,以便可以卸载它

我正在为PyPi创建一个Python包:

# setup.py
from setuptools import setup

setup(
    name='ubuntudesign-asset-mapper',
    version='0.2',
    author='Robin',
    author_email='robin.winslow@canonical.com',
    url='https://github.com/ubuntudesign/asset-mapper',
    packages=[
        'ubuntudesign'
    ],
    description=(
        'A mapping class for using the Ubuntu asset server.'
    ),
    long_description=open('README.rst').read(),
    install_requires=[
        "requests >= 2.0"
    ]
)
Run Code Online (Sandbox Code Playgroud)

我已成功将它放在PyPi上,我可以安装它:

$ pip install ubuntudesign-asset-mapper
Downloading/unpacking ubuntudesign-asset-mapper
  Downloading ubuntudesign-asset-mapper-0.2.tar.gz
  Running setup.py (path:/home/robin/.virtualenvs/assets-server/build/ubuntudesign-asset-mapper/setup.py) egg_info for package ubuntudesign-asset-mapper

Requirement already satisfied (use --upgrade to upgrade): requests>=2.0 in /home/robin/.virtualenvs/assets-server/lib/python2.7/site-packages (from ubuntudesign-asset-mapper)
Installing collected packages: ubuntudesign-asset-mapper
  Running setup.py install for ubuntudesign-asset-mapper

Successfully installed ubuntudesign-asset-mapper
Cleaning up...
$ pip …
Run Code Online (Sandbox Code Playgroud)

python pip setuptools pypi

6
推荐指数
0
解决办法
126
查看次数

使用 Chrome 的开发者工具使用新的全局 CSS 规则实时编辑页面

在Chrome 开发者工具中检查元素并编辑应用于该元素的现有 CSS 规则非常简单,但是如果您想创建全新的样式规则怎么办?

就我而言,我想做的是应用以下样式规则:

br {显示:无} hr {页边距:20px} 字体 {font-size:18px}

敏捷宣言背后的原则,以便我可以直接从浏览器将其打印在一张 A4 纸上。

我已经链接到的有关 Chrome 开发人员工具的官方文档确实有一个关于添加新规则和属性的部分,但它已经过时,并且无法像最新版本的 Chrome 中那样工作。

css google-chrome live developer-tools

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

如何为不同的数据源实现Data Mapper/Repository持久性模式?

我正在从头开始编写一个新的网站项目.该项目在C#中,但我的背景是在PHP中(下面的伪代码有点混合,试图简洁和声明).

问题

我需要从两个地方之一检索配置数据 - 有时从本地数据库,有时从Soap服务.我应该能够从任一源创建同一组Model对象.

数据存储在不同数据源中完全不同的结构中 - 需要从Soap端拼凑出几个不同的Soap响应,而DB结构更接近于我在代码中构建模型对象的方式.

配置由对象树组成:产品包含属性,其中包含选项,这些选项具有应用时间的条件.

目标

我想尽可能地分开关注点(希望能够促进测试/维护/扩展能力):

  • 我的Model对象应该对Data Persistence或检索一无所知
  • 数据持久性对象应尽可能与数据源的确切类型无关
  • 我想尽可能地分开对象创建.

问题

我知道各种各样的设计模式(虽然我不完全确定我完全理解它们).我向程序员提出了一个与此类似的问题,得到了关于Persistence Ignorance(更多信息)和Repository模式的回复,它们似乎都是来自Microsoft世界的概念.

据我所知,"Persistence Ignorance"只是让Model对象对你的数据存储机制一无所知的概念,而Repository模式看起来与Data Mapper模式非常相似,只不过它可能更像是一个外观,隐藏更多实际发生的事情.

所以我的问题是:

在Data Mapper模式中,每个Model对象应该有一个Mapper吗?而不是一个整个配置树?

因此,我应该有一个使用所有Mapper对象的配置树构建对象吗?

class ConfigBuilder() {
    public ConfigBuilder (productMapper, propertyMapper, optionMapper, conditionMapper) {
        // save them into local properties
    }

    public Products() {
       var products = productMapper.FetchAll();

       foreach (var product in products) {
           AddProperties(product);
       }

        return …
Run Code Online (Sandbox Code Playgroud)

c# model-view-controller design-patterns data-access-layer datamapper

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

在后台使用reCAPTCHA v2?

我试图找出是否可以使用Google的reCAPTCHA v2服务来检查是否有人在后台使用户体验变得更加简单?

例如,如果我有一些我想让用户做的事情,只需按一个按钮(例如"喜欢"),我就想检查它们是否是人类,为它们添加额外的复选框以使任务成为两次对用户来说很难.

我知道reCAPTCHA使用一些用户跟踪和其他指标来决定某人是否是人类,我想知道我是否可以在没有每次显示reCAPTCHA复选框的情况下利用这些措施?如果它回来"我们不确定这个人是否是人",那么我们可以显示复选框或完整的文本猜测对话框,但对于大多数用户,我希望它尽可能简单.

javascript user-interface recaptcha

5
推荐指数
0
解决办法
102
查看次数

Postgresql:创建一个没有权限的新用户?

我只是在学习 PostgreSQL。每次我创建用户时,他们似乎都拥有在任何数据库中执行任何操作的完全权限:

$ sudo useradd fool # create the user "fool" in the system
# And in postgresql, as restrictively as possible
$ sudo -u postgres createuser fool --no-superuser --no-createdb --no-createrole --no-inherit
$ sudo -u fool psql postgres # but it can still connect to the "postgres" db
postgres=> drop table ids; # and delete tables
DROP TABLE
Run Code Online (Sandbox Code Playgroud)

我试图创建通过用户create userPostgreSQL的命令,而不是命令行工具,但它有完全一样的效果。

如何创建仅有权访问其自己的数据库的用户?还是我必须在创建用户后专门撤销所有权限?'因为从安全角度来看这有点糟糕 - 很容易不小心忘记(或只是不知道这是必要的)撤销新用户的权限。

postgresql privileges roles

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

NodeJS程序失败,退出时没有输出

我的几个节点程序正在退出,其状态为失败,没有输出.例如:

$ npmunbox --help  # Error - no output
$ grover --version  # Error - no output
Run Code Online (Sandbox Code Playgroud)

即使我的nodejs似乎工作正常:

$ nodejs --version
v0.10.32
Run Code Online (Sandbox Code Playgroud)

我正在运行Ubuntu 14.04.

bash node.js ubuntu-14.04 grover

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

在Docker构建中使用pip缓存目录

我希望尽快将自己的pip install说明放入docker builds中。

我读过许多 文章,解释了requirements.txt在应用程序其余部分之前添加您的内容如何在您requirements.txt未更改的情况下帮助您利用Docker自己的图像缓存。但是,如果依赖项确实发生了变化,甚至没有任何变化,这根本没有帮助。

下一步将是是否可以使用一致的pip缓存目录。默认情况下,pip它将在~/.cache/pip(在Linux上)缓存已下载的软件包,因此,如果您要安装的模块的版本与系统上任何地方之前安装的模块相同,则无需再次下载它,而是而是简单地使用缓存的版本。如果我们可以将共享的缓存目录用于Docker构建,则可以大大加快依赖项的安装速度。

但是,似乎没有任何简单的方法可以在运行时挂载卷docker build。构建环境似乎基本上是不可渗透的。我发现有一篇文章提出了一种rsync在主机上运行服务器的奇妙但复杂的方法,然后在内部进行破解以获取主机IP,从而从主机中同步pip缓存。但是我不喜欢在Jenkins中运行rsync服务器的想法(最好的时间,这不是最安全的平台)。

有谁知道是否还有其他方法可以更简单地实现共享缓存量?

python continuous-integration caching pip docker

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

“docker run”命令来评估容器内的 bash $variable

如何在 docker 容器内运行命令,使用docker run,其中在容器评估 bash 变量?

例如:

$ SOMEONE=host
$ docker run --env SOMEONE=busybox busybox echo "Hello $SOMEONE"
Hello host
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它输出Hello busybox

bash containers environment-variables docker

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

在接口中:指定实现的方法必须采用接口的子类型?

我希望有一个接口指定该接口的任何实现必须在其方法声明中使用特定接口的子类型:

interface IModel {} // The original type

interface IMapper {
    void Create(IModel model); // The interface method
}
Run Code Online (Sandbox Code Playgroud)

所以,现在我想我实现这个接口来没有想到IModel本身,而是一个亚型IModel:

public class Customer : IModel {} // My subtype

public class CustomerMapper : IMapper {
    public void Create(Customer customer) {} // Implementation using the subtype
}
Run Code Online (Sandbox Code Playgroud)

目前我收到以下错误:

'CustomerMapper'没有实现接口成员'IMapper.Create(IModel)'

有没有办法实现这个目标?

c# inheritance interface

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