Regex表达式w/set长度
Regex expression w/ set length
我有数千行正在使用Pentaho加载到数据库中。我必须将字符串值的长度保持在4个字符。源文件可能只有一个字符,但仍需要将长度保持在4个字符,以保持数据库中的一致性。
示例:
来源:10
数据库预期结果:0010
我使用的是字符串中的替换转换,或者可以使用java表达式,只要一个表达式有效。请使用任一方法(Regex或Javascript表达式)提供帮助并提供解决方案。
谢谢,
在Java中,您可以使用带有格式说明符的String.format(...)
来将数字填充为0到4位数字:
String.format("%04d", yournumber);
在Javascript中,您可以将sprintf(...
)用于相同的任务:
var s = sprintf("%04d", yournumber);
所以显然sprintf()
不是标准的Javascript,而是一个可以下载的库。你总是可以这样做来获得你的4位数字,尽管:
// take the last 4 digits from the right
var s = String("0000" + yournumber).slice(-4);
实际上,你可以把它变成一个简单的左填充函数:
String.prototype.leftPad = function(paddingValue, paddingLength) {
return (new Array(paddingLength + 1).join(paddingValue) + this).slice(-paddingLength);
};
var s = String(yournumber).leftPad("0", 4)
(如果你指的是Javascript):
var str = "10";
function padIt(s) {
s = ""+s;
while (s.length < 4) {
s = "0" + s;
}
return s;
}
console.log(padIt(str));
http://jsfiddle.net/EzqRM/1/
对于任意数字填充,在javascript:中
// padLeft(
// number to pad
// length to pad to
// character to pad with[optional, uses 0's if not specified]
// )
function padLeft(num, pad, padchr) {
num = "" + num;
pad = (pad || num.length) + 1;
return (num.length < pad ? new Array(pad - num.length).join(padchr || "0") : "") + num;
}
// returns "0010"
var input = 10
padded = padLeft(input, 4)
相关文章:
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- Ember Data DS.Model's set函数不起作用
- 创建具有可变长度幻灯片显示的幻灯片
- 使用D3.js计算带有字母间距的文本长度
- 使用javascript在MVC中查找网格长度时出错
- CryptoJS和密钥/IV长度
- 淘汰赛.JS'启用'长度绑定条件不起作用
- 如何确定对象内部包含对象的JSON的长度
- 如何显示文本长度,即使它超过ng最大长度
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- WAMP响应内容长度限制
- 使用javascript比较对象中的对象值和数组长度
- 无法在基于Cordova的应用程序中读取Set Cookie标头
- 必须检查长度,并在文本框中允许一些特殊字符
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- Angular2/JavaScript-如何显示localStorage保存的所有变量并获取所有键的总长度
- 在不兼容的接收器上调用的方法Set.prototype.add未定义
- 在粘贴maxlength-set输入时检测字符串长度
- Regex表达式w/set长度