2013-05-04 3 views
0

Мне нужно проверить длину строки $ A в скрипте UltraEdit (JavaScript), а затем выложить ее с помощью ведущих заготовок, если она меньше x (скажем: 30). В Stack Overflow предлагается следующее: он не работает в скрипте UltraEdit.Как выложить строку с ведущими пробелами?

$AAA .= (" " x (35 - length($AAA))); 

Предложения оценены.

PS: UltraEdit использует JavaScript-движок ядра для сценариев.

ответ

0

Я думаю, что вы ищете это:

http://msdn.microsoft.com/en-us/library/66f6d830.aspx

+0

Благодарит Вас. Проблема: Javascript, похоже, не имеет этой команды. – fvg

+0

А, я вижу. Я не знаю, как я неправильно прочитал ваш вопрос. Извини за это. Вы можете попытаться создать массив пространств, необходимых для добавления к вашей строке, и добавить существующую строку в качестве последнего элемента, а затем сделать .join ('') в массиве. Это не самый чистый, но он может работать. –

1

В ядре JavaScript используется в сценариях Ultraedit нет функции для печати форматированного в строковую переменную.

Но тем не менее очень легко создать выровненные строки с ведущими пробелами или нулями.

Пример для фиксированной выходной длиной ряда:

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. 
Смежные вопросы