解决svn: Can’t convert string from ‘UTF-8’ to native encoding问题

更新SVN的时候遇到错误:svn: Can’t convert string from ‘UTF-8’ to native encoding:

查看locale :

[root@103 test]# locale
LANG=en_US
LC_CTYPE=”en_US”
LC_NUMERIC=”en_US”
LC_TIME=”en_US”
LC_COLLATE=”en_US”
LC_MONETARY=”en_US”
LC_MESSAGES=”en_US”
LC_PAPER=”en_US”
LC_NAME=”en_US”
LC_ADDRESS=”en_US”
LC_TELEPHONE=”en_US”
LC_MEASUREMENT=”en_US”
LC_IDENTIFICATION=”en_US”
LC_ALL=
[root@103 test]#

[root@103 test]# export LC_ALL=zh_CN.UTF-8
[root@103 test]# locale
LANG=en_US
LC_CTYPE=”zh_CN.UTF-8″
LC_NUMERIC=”zh_CN.UTF-8″
LC_TIME=”zh_CN.UTF-8″
LC_COLLATE=”zh_CN.UTF-8″
LC_MONETARY=”zh_CN.UTF-8″
LC_MESSAGES=”zh_CN.UTF-8″
LC_PAPER=”zh_CN.UTF-8″
LC_NAME=”zh_CN.UTF-8″
LC_ADDRESS=”zh_CN.UTF-8″
LC_TELEPHONE=”zh_CN.UTF-8″
LC_MEASUREMENT=”zh_CN.UTF-8″
LC_IDENTIFICATION=”zh_CN.UTF-8″
LC_ALL=zh_CN.UTF-8
[root@103 test]# svn up
U 系统及运营预案.docx
取出版本 121623。
[root@103 test]#

实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)

//校验是否全由数字组成

function isDigit(s) 
{ 
var patrn=/^[0-9]{1,20}$/; 
if (!patrn.exec(s)) return false 
return true 
} 

//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串

function isRegisterUserName(s)
{
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if (!patrn.exec(s)) return false
return true
}

//校验用户姓名:只能输入1-30个以字母开头的字串

function isTrueName(s)
{
var patrn=/^[a-zA-Z]{1,30}$/;
if (!patrn.exec(s)) return false
return true
}

//校验密码:只能输入6-20个字母、数字、下划线

function isPasswd(s)
{
var patrn=/^(w){6,20}$/;
if (!patrn.exec(s)) return false
return true
}

//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”

function isTel(s)
{
//var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?(d){1,12})+$/;
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}

//校验手机号码:必须以数字开头,除数字外,可含有“-”

function isMobil(s)
{
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}

//校验邮政编码

function isPostalCode(s)
{
//var patrn=/^[a-zA-Z0-9]{3,12}$/;
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
if (!patrn.exec(s)) return false
return true
}

//校验搜索关键字

function isSearch(s)
{
var patrn=/^[^`~!@#$%^&*()+=|\][]{}:;',.<>/?]{1}[^`~!@$%^&()+=|\][]{}:;',.<>?]{0,19}$/;
if (!patrn.exec(s)) return false
return true
}

//校验是否IP地址

function isIP(s) //by zergling
{
var patrn=/^[0-9.]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
"^\d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\d+$"    //整数
"^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
"^(-?\d+)(\.\d+)?$"  //浮点数
"^[A-Za-z]+$"  //由26个英文字母组成的字符串
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串
"^[a-z]+$"  //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
"^\w+$"  //由数字、26个英文字母或者下划线组成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url
"^[A-Za-z0-9_]*$"
// var str1 = str.replace(/[\'\"\\\/\b\f\n\r\t]/g, '');// 去掉转义字符
// var str2= str.replace(/[\-\_\,\!\|\~\`\(\)\#\$\%\^\&\*\{\}\:\;\"\L\<\>\?]/g, '');// 去掉特殊字符
// return str2;
var containSpecial = RegExp(/[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/);
return ( containSpecial.test(s) ); 判断是否含有

var filterRule= /[^0-9a-zA-Z_]/g;
var judge= filterRule.test(str); //判断传进来的数据是否含有特殊字符。test函数返回匹配结

var rows=JSON.stringify(rows);////将json对象转换成json对符串
var rows=JSON.parse(rows);//将json字符串转换成json对象

原文:https://www.jb51.net/article/33192.htm

参考:js 过滤字符 和检测 特殊字符

js去掉url链接多余参数

的时候别人可能会故意刷我们的网站链接,在后面加上参数来访问网站,例如‘http://test.codelovers.cn/?_t=1539913651’我们想实现的效果是自动去掉后缀包含?部分,实现代码如下

if(top != self){	
  top.location=self.location;
}
else{	
  var url = location.search;	
  if(url){		
    var old_url = window.location.href;		 
    var new_url = old_url.substring(0, old_url.indexOf('?'));		
    self.location = new_url;	
  }
}

php取整的几种方式,四舍五入,舍去法取整,进一法取整

php取整的几种方式,四舍五入,舍去法取整,进一法取整
方式一:round 对浮点数进行四舍五入
语法:float round ( float val [, int precision] )

echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06

方式二:floor 舍去法取整 语法格式:float floor ( float value )

返回不大于value 的下一个整数,将value 的小数部分舍去取整。floor() 返回的类型仍然是float,因为float 值的范围通常比integer 要大。
echo floor(4.3); // 4
echo floor(9.999); // 9

方式三:ceil 进一法取整 语法格式: float ceil ( float value )
返回不小于value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是float,因为float 值的范围通常比integer 要大
echo ceil(4.3); // 5
echo ceil(9.999); // 10

总结:

echo intval(4.5);echo "<br />";//直接取整,舍弃小数保留整数
echo round(4.5);echo "<br />";//四舍五入取整
echo ceil(4.5);echo "<br />";//有小数,就在整数的基础上加一
echo floor(4.5);echo "<br />";//有小数,就取整数位

javascript中 visibility和display的区别

大多数人很容易将CSS属性display和visibility混淆,它们看似没有什么不同,其实它们的差别却是很大的。

visibility属性用来确定元素是显示还是隐藏的,这用visibility=”visible|hidden”来表示(visible表示显示,hidden表示隐藏)。

当visibility被设置为”hidden”的时候,元素虽然被隐藏了,但它仍然占据它原来所在的位置。例:

<script language="JavaScript"> 
function toggleVisibility(me){
 if (me.style.visibility=="hidden"){ 
    me.style.visibility="visible"; 
  } 
  else { 
    me.style.visibility="hidden"; 
  } 
} 
</script> 

<div onclick="toggleVisibility(this)" style="position:relative">

第一行文本将会触发”hidden”和”visible”属性,注意第二行的变化。</div> <div>因为visibility会保留元素的位置,所以虽然第一行看不见了但位置还在,第二行内容不会上下移动。</div>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

注意到,当元素被隐藏之后,就不能再接收到其它事件了,所以在第一段代码中,当其被设为”hidden”的时候,就不能再接收响应到事件了,因此也就无法通过鼠标点击第一段文本令其显示出来。

另一方面,display属性就有一点不同了。visibility属性是隐藏元素但保持元素的浮动位置,而display实际上是设置元素的浮动特征。

当display被设置为block(块)时,容器中所有的元素将会被当作一个单独的块,就像<div>元素一样,它会在那个点被放入到页面中。(实际上你可以设置<span>的display:block,使其可以像<div>一样工作。

将display设置为inline,将使其行为和元素inline一样—即使它是普通的块元素如<div>,它也将会被组合成像<span>那样的输出流。

下面看我实例的代码和效果:

<script language="JavaScript"> 
function toggleDisplay(me){ 
  if (me.style.display=="block"){ 
    me.style.display="inline"; 
    alert("文本现在是:'inline'.");
  }  
  else { 
    if (me.style.display=="inline"){ 
      me.style.display="none";  
      alert("文本现在是:'none'. 3秒钟后自动重新显示。"); 
      window.setTimeout("blueText.style.display='block';",3000,"JavaScript"); 
    } else { me.style.display="block"; alert("文本现在是:'block'."); } } } </script> 
 
<div>在<span id="blueText" onclick="toggleDisplay(this)" style="color:blue;position:relative;cursor:hand;">蓝色</span>文字上点击来查看效果.</div>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

最后是display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填。(此时应用display: none;的元素相当于消失,而visibility: hidden;则只表示隐藏,位置还在。)

display 属性分别为block, inline, none 值及使用visibility: hidden;的情况调试示例:

<h1>display 属性分别为block, inline, none 值及使用visibility: hidden;的情况调试</h1> 
<P><SPAN id="oSpan" style="">This is a SPAN</SPAN> in a sentence.</P> 
<P> 
<input type=button value="Inline" onclick="oSpan.style.display='inline'"> 
<input type=button value="Block" onclick="oSpan.style.display='block'">
<input type=button value="None" onclick="oSpan.style.display='none'"> 
<input type=button value="Hidden" onclick="oSpan.style.visibility='hidden'">
<input type=button value="Visible" onclick="oSpan.style.visibility='visible'"> 
</P> 
<UL> 
  <LI>将元素设为 block,会在该元素后换行。</LI> 
  <LI>将元素设为 inline,会消除元素换行。</LI> 
  <LI>将元素设为 none,隐藏该元素内容。</LI> 
</UL>

js获取当前时间,并格式化为”yyyy-MM-dd HH:mm:ss”

function getFormatDate() {
    var date = new Date();
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    var currentDate = date.getFullYear() + "-" + month + "-" + strDate
            + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
    return currentDate;
}

//将时间戳转换成 yyyy-MM-dd HH:mm:ss

      
    //inputTime 参数是毫秒级时间戳
    formatDate(inputTime) {
        var date = new Date(inputTime);
        var y = date.getFullYear();
        var m = date.getMonth() + 1;
        m = m < 10 ? ('0' + m) : m;
        var d = date.getDate();
        d = d < 10 ? ('0' + d) : d;
        var h = date.getHours();
        h = h < 10 ? ('0' + h) : h;
        var minute = date.getMinutes();
        var second = date.getSeconds();
        minute = minute < 10 ? ('0' + minute) : minute;
        second = second < 10 ? ('0' + second) : second;
        return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
      },

js 弹出确认-取消对话框

一种:

<a href="javascript:if(confirm('确实要删除该内容吗?'))location='http://www.google.com'">弹出窗口</a>

二种:

<script language="JavaScript">            
function delete_confirm(e)
{
    if (event.srcElement.outerText == "删除")
    {
        event.returnValue = confirm("删除是不可恢复的,你确认要删除吗?");
    }
}
document.onclick = delete_confirm;
</script>
<a href="Delete.aspx" onClick="delete_confirm">删除</a>

三种:

if(window.confirm('你确定要取消交易吗?')){
                 //alert("确定");
                 return true;
              }else{
                 //alert("取消");
                 return false;
             }

四种:

<!--调用方法--> 
<script language="JavaScript">             
function delete_confirm() 
{
    event.returnValue = confirm("删除是不可恢复的,你确认要删除吗?");
}
</script>

Input类型是checkbox时checked属性获取

记录一下checkbox 的 checked 属性的获取办法,以备忘记:

假如你的一个HTML页中有这么一段代码:

       <input name="chbRem" id="chbRem" type="checkbox" checked="checked"> 

那么如何通过JQuery获得chbRem的checked状态呢:

错误的写法如下:

      alert(  $("#chbRem").attr("checked")   );

正确的获取方式应该是:

      alert(  $("#chbRem")[0].checked   );

此时,会输出ture。

7种获取PHP文件后缀名的方法

第一种:

$file = 'x.y.z.png';
echo substr(strrchr($file, '.'), 1);

解析:strrchr($file, ‘.’)
strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符

第二种:

$file = 'x.y.z.png';
echo substr($file, strrpos($file, '.')+1);

解析:strrpos($file, ‘.’)
查找 “.” 在字符串中最后一次出现的位置,返回位置 substr()从该位置开始截取

第三种:

$file = 'x.y.z.png';
$arr=explode('.', $file);
echo $arr[count($arr)-1];

第四种:

$file = 'x.y.z.png';
$arr=explode('.', $file);
echo end($arr);  //end()返回数组的最后一个元素

第五种:

$file = 'x.y.z.png';
echo strrev(explode('.', strrev($file))[0]);

第六种:

$file = 'x.y.z.png';
echo pathinfo($file)['extension'];

解析:pathinfo() 函数以数组的形式返回文件路径的信息。

包括以下的数组元素:

[dirname]
[basename]
[extension]

第七种:

$file = 'x.y.z.png';
echo pathinfo($file, PATHINFO_EXTENSION);

总结:字符串截取2种,数组分割3种,路径函数2种

原文:https://www.php.cn/php-weizijiaocheng-392130.html