C#: public static string GetSubString(string str, int length) { string temp = str; int j = 0; int k = 0; for (int i = 0; i < temp.Length; i++) { if (Regex.IsMatch(temp.Substring(i, 1), @"[/u4e00-/u9fa5]+")) { j += 2; } else { j += 1; } if (j <= length) { k += 1; } if (j >= length) { return temp.Substring(0, k); } } return temp; } Javascript: function GetSubString(str, length) { var temp = str; var j = 0; var k = 0; for (var i = 0; i < temp.length; i++) { if ( ! new RegExp("[u4e00-u9fa5]").test(temp.substr(i, 1)) ) { j += 2; } else { j += 1; } if (j <= length) { k += 1; } if (j >= length) { return temp.substr(0, k); } } return temp; } PS:一个中文代表2个字符。