JS front-end notation:
The third parameter determines whether an ellipsis is required
function subString (str, len, Hasdot)
{
var newlength = 0;
var newstr = "";
var chineseregex =/[^\x00-\xff]/g;
var Singlechar = "";
var strlength = str.replace (Chineseregex, "* *"). Length;
for (var i = 0;i < strlength;i++)
{
Singlechar = Str.charat (i). toString ();
if (Singlechar.match (Chineseregex)!= null)
{
newlength = 2;
}
else
{
newlength++;
}
if (Newlength > Len)
{break
;
}
Newstr + + Singlechar;
}
if (Hasdot && strlength > Len)
{
newstr + = "...";
}
return newstr;
Server-side PHP notation:
function Msubstr ($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for ($i = 0; $i < $strlen; $i + +) {
if (Ord substr ($str, $i, 1)) > 0xa0) {
$tmpstr. = substr ($str, $i, 2);
$i + +;
} else
$tmpstr. = substr ($str, $i, 1);
}
return $tmpstr;
}