我需要在 UltraEdit 脚本 (JavaScript) 中测试字符串 $A 的长度,然后在小于 x 时用前导空格填充它(例如:30)。在 Stack Overflow 上可以找到以下建议,但它似乎不适用于 UltraEdit 脚本。
$AAA .= (" " x (35 - length($AAA)));
建议表示赞赏。
PS:UltraEdit 使用 JavaScript 核心引擎编写脚本。
我需要在 UltraEdit 脚本 (JavaScript) 中测试字符串 $A 的长度,然后在小于 x 时用前导空格填充它(例如:30)。在 Stack Overflow 上可以找到以下建议,但它似乎不适用于 UltraEdit 脚本。
$AAA .= (" " x (35 - length($AAA)));
建议表示赞赏。
PS:UltraEdit 使用 JavaScript 核心引擎编写脚本。
在 UltraEdit 脚本中使用的 JavaScript 核心中,没有将格式化为字符串变量的打印功能。
但是创建带有前导空格或零的对齐字符串非常容易。
数字的固定长度输出示例:
var nNumber = 30; // number to output right aligned with 4 digits
var sAlignSpaces = " "; // string containing the spaces (or zeros) for aligning
// Convert integer number to decimal string.
var sNumber = nNumber.toString(10);
// Has the decimal string less than 4 characters as defined by sAlignSpaces?
if (sNumber.length < sAlignSpaces.length)
{
// Build decimal string new with X spaces (here 2) from the alignment
// spaces string and concatenate this string with the number string.
sNumber = sAlignSpaces.substr(0,sAlignSpaces.length-sNumber.length) + sNumber;
}
// String sNumber has now always at least 4 characters with
// 0 to 3 leading spaces depending on decimal value of the number.
根据最大数字动态对齐正数的示例:
var nHighestNumber = 39428; // highest number usually determined before
var nCurrentNumber = 23; // current number to output right aligned
// Convert the highest number to a decimal string and get a copy
// of this string with every character replaced by character '0'.
// With highest number being 39428 the created string is "00000".
var sLeadingZeros = nHighestNumber.toString(10).replace(/./g,"0");
// Convert integer number to decimal string.
var sNumber = nCurrentNumber.toString(10);
// Has the decimal string of the current number less
// characters than the decimal string of the highest number?
if (sNumber.length < sLeadingZeros.length)
{
// Build decimal string new with X (here 3) zeros from the alignment
// string and concatenate this leading zero string with the number string.
sNumber = sLeadingZeros.substr(0,sLeadingZeros.length-sNumber.length) + sNumber;
}
// String sNumber has now always at least 5 characters with 0 to 4
// leading zeros depending on decimal value of the positive number.