小编Dom*_*nic的帖子

什么是正则表达式,它将匹配没有子域的有效域名?

首先抱歉第10,000次RegEx问题,

我意识到还有其他与域相关的问题,但正则表达式要么不正常,要么太复杂,要么对于具有子域,协议和文件路径的URL.

我更简单,我需要验证一个域名:

google.com

stackoverflow.com

所以这是一个最新形式的域名 - 甚至不是像www这样的子域名.

  1. 字符应该只是az | AZ | 0-9句点(.)和短划线( - )
  2. 域名部分不应以短划线( - )开头或结尾(例如-google-.com)
  3. 域名部分的长度应介于1到63个字符之间
  4. 扩展(TLD)现在可以是#1规则下的任何内容,我可以稍后对列表进行验证,但它应该是1个或更多字符

编辑:TLD显然是2-6个字符

没有.4修订版: TLD实际上应该被标记为"子域名",因为它应该包含像.co.uk这样的东西 - 我想可能的唯一验证(除了检查列表之外)将是'在第一个点之后应该有一个或者规则#1下的更多角色

非常感谢,相信我,我确实尝试过!

regex validation domain-name

106
推荐指数
11
解决办法
19万
查看次数

使用Webpack基于环境的条件构建

我有一些需要开发的东西 - 例如我想不会破坏我的分布式构建文件的模拟.

在RequireJS中,您可以在插件文件中传递配置,并根据需要调整其中的内容.

对于webpack,似乎没有办法做到这一点.首先创建一个环境中运行时配置我用resolve.alias重新指向一个取决于环境,例如,需要:

// All settings.
var all = {
    fish: 'salmon'
};

// `envsettings` is an alias resolved at build time.
module.exports = Object.assign(all, require('envsettings'));
Run Code Online (Sandbox Code Playgroud)

然后在创建webpack配置时,我可以动态分配哪些文件envsettings指向(即webpackConfig.resolve.alias.envsettings = './' + env).

不过我想做的事情如下:

if (settings.mock) {
    // Short-circuit ajax calls.
    // Require in all the mock modules.
}
Run Code Online (Sandbox Code Playgroud)

但显然我不想在环境不是模拟的情况下构建那些模拟文件.

我可以再次使用resolve.alias手动将所有这些需求重新命名为存根文件 - 但是有没有一种感觉不那么hacky的方法?

我有什么想法可以做到这一点?谢谢.

javascript conditional build require webpack

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

Promise.reject消息应该包含在Error中吗?

使用原生(ES6)承诺.我应该拒绝错误:

Promise.reject(new Error('Something went wrong'));
Run Code Online (Sandbox Code Playgroud)

或者我应该拒绝一个字符串:

Promise.reject('Something went wrong');
Run Code Online (Sandbox Code Playgroud)

浏览器行为有什么不同?

javascript error-handling promise es6-promise

26
推荐指数
1
解决办法
3709
查看次数

php的CURLOPT_USERPWD做了什么

我想知道CURLOPT_USERPWD实际上对请求的url,标头或数据做了什么.它是INSTEAD OF Authorization: Basic <base64 of user:pass>还是它在这边工作?

是修改网址吗?:

username:password@someurl.com

我看到了一些像这样的代码,所以我想知道,因为看起来我在NodeJS等效请求中请求它的url只是一个Authorization标头(我有理论服务器坏了,忽略了Auth头并使用了用户名:密码在网址中):

    curl_setopt($ch, CURLOPT_URL, $url); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    $encodedAuth = base64_encode(self::$pfAdapterUser.":".self::$pfAdapterPasswd);

    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authentication : Basic ".$encodedAuth));
    curl_setopt($ch, CURLOPT_USERPWD, self::$pfAdapterUser.":".self::$pfAdapterPasswd);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLINFO_HEADER_OUT, true);
Run Code Online (Sandbox Code Playgroud)

谢谢

php curl basic-authentication

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

如果不是body元素,Android无法正确滚动输入焦点

当移动浏览器调出键盘时,它会尝试移动滚动条,以便输入仍在视图中.

在iOS Safari上,它似乎通过查找最近的滚动父级来正确执行此操作.

在Android原生或Chrome移动浏览器上,它似乎只是尝试身体元素然后放弃,因此焦点输入隐藏在键盘下方.

 如何打破它

设置overflow-y: hidden在body元素上.创建一个可滚动的容器并在其中放置一个表单.

当您选择靠近屏幕底部的元素时,它将被键盘遮挡.

演示

http://dominictobias.com/android-scroll-bug/

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/>
    <title>Android scroll/focus bug</title>
    <style>
    html, body {
        margin: 0;
        padding: 0;
        height: 100%;
        overflow: hidden;
    }
    .scroll {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        overflow-y: scroll;
    }
    input {
        margin-bottom: 20px;
        width: 100%;
    }
    </style>
</head>
<body>

    <div class="scroll">
        <input type="text" value="Input 1">
        <input type="text" value="Input 2">
        <input type="text" value="Input 3">
        <input type="text" value="Input 4"> …
Run Code Online (Sandbox Code Playgroud)

android scroll google-chrome focus input

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

在Android上更改高度时,react-native TextInput显示错误

我有一个具有以下样式的TextInput:

amountInput: {
  flex: 1,
  backgroundColor: 'rgba(255, 255, 255, 0.1)',
  color: 'rgba(255, 255, 255, 0.9)',
},
Run Code Online (Sandbox Code Playgroud)

在iOS上它正确看起来没有足够的填充:

在此输入图像描述

在Android上默认有大量填充:

在此输入图像描述

不是问题 - 我将设置左右填充和高度:

amountInput: {
  flex: 1,
  backgroundColor: 'rgba(255, 255, 255, 0.1)',
  height: 30,
  paddingRight: 5,
  paddingLeft: 5,
  color: 'rgba(255, 255, 255, 0.9)',
}
Run Code Online (Sandbox Code Playgroud)

在iOS上看起来不错:

在此输入图像描述

但Android搞砸了:

在此输入图像描述

如何制作像倒数第二个iOS截图的Android输入框?谢谢.

android textinput react-native react-native-android

10
推荐指数
1
解决办法
4055
查看次数

htaccess将目录名重定向到参数

我想重定向所有路径,如下所示:

myurl.com/worldwide/en
myurl.com/worldwide/pt
myurl.com/worldwide/de
Run Code Online (Sandbox Code Playgroud)

至:

myurl.com/worldwide/index.php?lang=en
myurl.com/worldwide/index.php?lang=pt
myurl.com/worldwide/index.php?lang=de
Run Code Online (Sandbox Code Playgroud)

只是为了清楚路径名的动态重定向 /worldwide

其实理想情况下我想保留原始网址(例如myurl.com/worldwide/de),但加载相同的php文件与语言目录作为参数但不确定这是否可能?

谢谢

directory .htaccess redirect param

9
推荐指数
1
解决办法
4629
查看次数

如果输入被聚焦,iOS7 Safari布局会在方向更改时中断

似乎iOS7 iphone/ipad以及可能/可能的其他版本存在根本性的破坏.

如果您专注于输入字段以使键盘处于打开状态,则布局会在方向更改时以可怕且不可恢复的方式中断.它与css无关我只添加它以便可以更清楚地看到问题.

更改方向返回修复了布局,但我找不到其他方法.

演示

要加载到iPad/iPhone上:http://dominictobias.com/ios-layout-bug/

更新:仅在元视口中以maximum-scale = 1中断,当您更改方向时,它会停止Safari放大.

更新2:这是元视口的另一个有趣的错误:

<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
Run Code Online (Sandbox Code Playgroud)

如果你这样做并改变方向,它会放大然后你不能缩小并再次看到整个网站 - 即使刷新也行不通.您必须创建一个新选项卡才能恢复到正常的缩放级别.

更新3:而不是考虑这是一个主要的错误苹果支持问我是否发生在iOS 8测试版上并将该错误标记为无排名.

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
    <title>iOS7 Layout break</title>

    <style>
    body {
        background-color: red;
        margin: 0;
        padding: 0;
    }
    .container {
        background-color: black;
    }
    .inner-container {
        max-width: 75%;
        margin: 0 auto;
        padding: 30px;
        background-color: white;
    }
    </style>
</head>
<body>

<div class="container">
    <div class="inner-container">
        <p>When you focus in on this field and change orientation, …
Run Code Online (Sandbox Code Playgroud)

html keyboard layout focus ios

9
推荐指数
1
解决办法
1879
查看次数

插入位置时,使用flexbox在中心位置

在OSX Chrome 45上测试,align-items: center;正在处理内容,但是如果您点击下面的空可编辑,则在您开始输入之前,插入位置不会居中.

唯一的方法是通过顶部/底部平衡填充来解决这个问题,或者有没有一种方法可以让它在没有像素移位的情况下工作?谢谢

[contenteditable="true"] {
    border: 1px solid #ddd;
    display: flex;
    align-items: center;
    min-height: 46px;
}

[contenteditable="true"]:focus {
    outline: none;
}
Run Code Online (Sandbox Code Playgroud)
<div contenteditable="true"></div>
<div contenteditable="true">content is centered, but caret isn't</div>
Run Code Online (Sandbox Code Playgroud)

css contenteditable vertical-alignment flexbox

9
推荐指数
1
解决办法
661
查看次数

Chrome浏览器会自动向下滚动内容(当没有人要求时)

我们有丰富的页面,我们有一个带有动态内容的小块.直到最近,一切都很好.

现在Chrome浏览器以某种方式"捕获"页面上的一个div并向下滚动整个内容.用文字解释很难,但更容易证明.

这是测试页面.只需在Chrome中打开它,然后向下滚动一点,这样其中一个蓝色框就会出现在视口的最顶部边框上.当蓝色框保持在同一位置时,您将看到所有内容(数字1,2,3 ..)自动滚动.

在这个简单的例子中它可能看起来合乎逻辑,但是考虑到动态块只是页面上许多块中的一个,并且没有理由滚动整个内容,因为块内部发生了变化.

<html>
<body>

<div id="x" style="border:solid 1px red;width:200;height:200">
</div>

1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>


<script>
setInterval(function () {
    var e = document.createElement('div');
    e.setAttribute("style", "border:solid 2px blue;width:100px;height:20px");

    var x = document.getElementById('x');
    x.insertBefore(e, x.childNodes.length?x.childNodes[0]:null);
}, 1000);

</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我们本周刚发现这个Chrome奇怪的行为.该代码在过去的6个月中运行良好,所以我认为这是Chrome制作的新功能.所有其他浏览器工作正常.

==更新==

使用Chrome(我有最新版本56.0.2924.87(64位))到http://www.thefreedictionary.com/并向下滚动,直到"实时搜索"(带有移动文字的框)出现在浏览器的最顶部.您将体验到整个页面开始移动而不是正常行为.

javascript google-chrome

9
推荐指数
1
解决办法
1937
查看次数