文章

JavaScript 字符串/数字左补位,右补位,取固定长度,截位扩展函数代码

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

有时候我们的日期等不足两位的补一个0等,都可以使用这个。

这个大家应该都很明白了,就不废话了,代码如下:

1
2
3
4
5
#!javascript
String.prototype.padLeft =
Number.prototype.padLeft = function(total, pad) {
  return (Array(total).join(pad || 0) + this).slice(-total);
}

测试代码:

1
2
3
4
5
6
7
8
9
10
#!javascript
//补位
"X".padLeft(5, "Y"); //返回:YYYYX
(50).padLeft(5);   //返回:00050
 
var x = 1;
x.padLeft(2);     //返回:01
 
//截位
(123).padLeft(2);   //返回:23

更多代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!javascript
/**
 * 取子字符串
 * @param oriStr  原字符串
 * @param beginIndex 取子串的起始位置
 * @param len  取子串的长度
 * @return 子字符串
 */
 public String subString(String oriStr,int beginIndex,int len){
 int strlen = oriStr.length();
 beginIndex = beginIndex -1;
 if(strlen <= beginIndex){
  System.out.println("out of " + oriStr + "'s length, please recheck!");
 }else if(strlen <= beginIndex+len){
  str = oriStr.substring(beginIndex);
 }else{
  str = oriStr.substring(beginIndex, beginIndex+len);
 }
 return str;
 }
  
 /**
 * 右补位,左对齐
 * @param oriStr 原字符串
 * @param len 目标字符串长度
 * @param alexin 补位字符
 * @return 目标字符串
 */
 public String padRight(String oriStr,int len,char alexin){
 int strlen = oriStr.length();
 if(strlen < len){
  for(int i=0;i<len-strlen;i++){
  str = str+alexin;
  }
 }
 str = str + oriStr;
 return str;
 }
  
 /**
 * 左补位,右对齐
 * @param oriStr 原字符串
 * @param len 目标字符串长度
 * @param alexin 补位字符
 * @return 目标字符串
 */
 public String padLeft(String oriStr,int len,char alexin){
 int strlen = oriStr.length();
 if(strlen < len){
  for(int i=0;i<len-strlen;i++){
  str = str+alexin;
  }
 }
 str = oriStr + str;
 return str;
 }

-=- END -=-

本文由作者按照 CC BY 4.0 进行授权