SQL Server 文字转换为拼音首字母方法

网上找的经测试靠谱的,修改了若不是中文依然显示出来而不是返回空。

create function [dbo].[fun_getPY](@str nvarchar(4000)) 
returns nvarchar(4000) 
as 
begin 
declare @word nvarchar(1),@PY nvarchar(4000) 
set @PY=''
set @str = ltrim(rtrim(@str)) 
while len(@str)>0 
begin 
set @word=left(@str,1) 

set @PY=@PY+ltrim((case when unicode(@word) between 19968 and 19968+20901 
then (select top 1 PY from ( 
select 'A' as PY,N'驁' as word 
union all select 'B',N'簿' 
union all select 'C',N'錯' 
union all select 'D',N'鵽' 
union all select 'E',N'樲' 
union all select 'F',N'鰒' 
union all select 'G',N'腂' 
union all select 'H',N'夻' 
union all select 'J',N'攈' 
union all select 'K',N'穒' 
union all select 'L',N'鱳' 
union all select 'M',N'旀' 
union all select 'N',N'桛' 
union all select 'O',N'漚' 
union all select 'P',N'曝' 
union all select 'Q',N'囕' 
union all select 'R',N'鶸' 
union all select 'S',N'蜶' 
union all select 'T',N'籜' 
union all select 'W',N'鶩' 
union all select 'X',N'鑂' 
union all select 'Y',N'韻' 
union all select 'Z',N'咗' 
) T 
where word>=@word collate Chinese_PRC_CS_AS_KS_WS
order by PY ASC)
when unicode(@word) between 8544 and 8552  --希腊字母1-9
then  nchar(unicode(@word)-8495)
when unicode(@word) = 8553  --希腊字母10
then '0'
when  unicode(@word) between 48 and 57   --数字0-9
then @word 
when  unicode(@word) between 65296 and 65305   --全角数字0-9
then nchar(unicode(@word)-65248) 
when  unicode(upper(@word)) between 65 and 90   --字母a-z和A-Z
then upper(@word) 
when  unicode(upper(@word)) between 65313 and 65338  --全角字母a-z和A-Z
then nchar(unicode(upper(@word))-65248)
else @word end))   --如果非汉字字符或非字母、数字、希腊字母、全角字母、全角数字,返回原字符 
set @str = substring(@str,2,len(@str)-1)
end 
return @PY 
end 

参考链接

BBR+魔改BBR+LotServer锐速一键安装脚本【转载收藏】

真的很好用很方便,Ubuntu14、16版本验证无问题,直接执行如下代码。
先安装bbr(按1)或锐速(按2)内核,安装完毕进入脚本按8进行配置优化,然后重启。重启完毕后再次进入脚本选择使用哪一个加速版本即可。

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

下载完毕后直接执行:
./tcp.sh

通过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();
        }
    });
}