通过Jquery实现input文本框手动输入日期格式控制

是否遇到过这么个需求,一个需要输入日期的地方,但是用户要求说就是不想用datepicker控件,不想用鼠标去点,就想直接输入数字。

在这里直接自己手写了一份jquery的验证代码,此代码实现了自动填充横杠、自动补日月的0,保持yyyy-MM-dd格式,失去焦点和输入完毕时的日期验证功能。

例如实现2018-10-08,使用这套规则只需输入20181008、2018108即可。

if ($(this).attr("directinput") == "1") {
    //变更事件
    $(this).bind("keyup", function (e) {
        //如果是退格键,则不校验。
        if (e.which == 8) { return; }

        //如果输入到月份,输入后的月份大于12,则在两个数的中间加一个-号
        if ($(this).val().split("-").length == 2 && $(this).val().split("-")[1] != "") {
            var month = $(this).val().split("-")[1];
            if (parseInt(month) > 12) {
                var resultVal = $(this).val().split("-")[0] + "-" + month.substring(0, 1) + "-" + month.substring(1); 
                $(this).val(resultVal);
            }
        }

        //第5位、第8位自动补横杠
        if (($(this).val().length == 4 || $(this).val().length == 7) && $(this).val().split("-").length - 1 < 2) { $(this).val($(this).val() + "-"); } //输入共10个字符,并且验证日期不合法,则失去焦点时提示。 if ($(this).val().length == 10 && !(new Date($(this).val()).getDate() == $(this).val().substring($(this).val().length - 2))) { alert("输入的日期不合法,请重新输入。"); $(this).val(""); } //如果存在2个杠,且长度在8、9,验证年月日的长度,把0位补足 if ( ( ($(this).val().length == 8 || $(this).val().length == 9) && $(this).val().split("-").length == 3 && $(this).val().lastIndexOf("-") != $(this).val().length - 1 && $(this).val().lastIndexOf("0") != $(this).val().length - 1 ) || $(this).val().length > 10) {
            var splitval = $(this).val().split("-");
            var result = "";

            //年不满4位则直接报错
            if (splitval[0].length < 4) {
                alert("输入的日期不合法,请重新输入。");
                $(this).val("");
            } else {
                //规范化日期格式,并进行最后校验
                result = splitval[0];
                result += "-";

                var val1 = parseInt(splitval[1]);
                if (val1 < 10) {
                    result += "0" + val1;
                } else {
                    result += val1;
                }
                result += "-";

                var val2 = parseInt(splitval[2]);
                if (val2 < 10) {
                    result += "0" + val2;
                } else {
                    result += val2;
                }
                $(this).val(result);

                if (!(new Date($(this).val()).getDate() == $(this).val().substring($(this).val().length - 2))) {
                    alert("输入的日期不合法,请重新输入。");
                    $(this).val("");
                }
            }
        }
    });

    //失去焦点时验证日期合法性
    $(this).bind("blur", function () {
        if ($(this).val() != "" && !(new Date($(this).val()).getDate() == $(this).val().substring($(this).val().length - 2))) {
            alert("输入的日期不合法,请重新输入。");
            $(this).val("");
            $(this).focus();
        }
    });
} 

JS 获取 CheckBox 复选框值为on的问题

当我们使用下面的方式获取HTML页面上的checkbox的value时,一定情况下会返回on,原因是这个元素没有设定value属性。

document.getElementByID(“chk”).value

如果元素为这样的没有value属性,则会返回on

<input type=”checkbox” id=”chk” />

如果有value属性,则才会返回value里面的内容

<input type=”checkbox” id=”chk” value=”100″ />

Ubuntu 安裝 VNCServer 实现GNOME远程桌面环境

安装步骤:

1、安装桌面环境Gnome(ubuntu-desktop 可以更换 ubuntu-gnome-desktop)

apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y

2、安装VNCServer,安装完毕后执行一次vncserver设置初始密码

sudo apt-get install vnc4server
sudo vncserver

3、执行一次vncserver之后,修改配置文件(红色为需要新加的内容)

vim ~/.vnc/xstartup

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic -nowin &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession

4、重新启动vncserver即可登录

SQL Server 2008 重置sa登陆密码(无法通过Windows身份验证登陆且sa密码忘记)

现遇到这么一个问题:有一个很久没用的SQL Server 2008 R2 环境,要使用时发现用本地Windows身份验证登陆不上去,而且sa密码也忘了。为了保证里面的数据避免重装真的是翻了很多网站的资料,最终得以解决,在此将解决步骤归纳下来。

解决方案:

1、手动将正在运行的SQL Server 服务关闭

2、寻找SQL Server 安装目录中的sqlservr.exe文件,通常默认安装在:C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn

3、启动cmd命令提示符,注意:需要打开管理员版本,cd定位到上述目录中,然后敲入如下命令

sqlservr -c -m

输入回车后如下图所示,SQLServer处于单用户启动状态。

4、启动另外的一个cmd命令提示符,执行:sqlcmd,然后编写创建新用户且设为管理员的sql语句。

1> create login testuser with password='abc123'
2> go
上述代码输入完毕后回车,再输入下面代码
1> sp_addsrvrolemember 'testuser', 'sysadmin'
2> go
回车

例图:

上述操作完毕后,将两个cmd窗口全部关掉,手动重新开启SQL Server服务,打开Management Studio使用我们刚才建立的账号登陆,登陆后为超级管理员权限,即可修改sa密码、设置Windows身份验证等操作。

Ubuntu升级内核开启BBR加速【转载收藏】

原文见:https://www.dz9.net/blog/4246.html

 

简述步骤:

1、升级Ubuntu内核(4.9以上)

下载最新的内核包:http://kernel.ubuntu.com/~kernel-ppa/mainline/

然后正常安装下载下来的包(下载的安装包名称例子:linux-image-4.10.2-041002-generic_4.10.2-041002.201703120131_amd64.deb

安装完成之后执行sudo update-grub更新引导,完成后reboot。

2、再次检查内核版本是否为4.9+ 使用指令:uname -a,高于则进行下一步。

3、设置BBR,执行如下命令:

sudo bash -'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
sudo bash -'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'

sudo sysctl -p

若执行”sysctl -p”提示访问拒绝字样,则需要先切换使用root账号进行设置,使用这个命令切换到root权限:sudo su

最后执行
sysctl net.ipv4.tcp_available_congestion_control

如果返回结果
net.ipv4.tcp_available_congestion_control = bbr cubic reno
那么恭喜你BBR开启成功了!

也可以执行
lsmod | grep bbr
来检测 BBR 是否真的开启成功……