2015-06-05 2 views
-3
Anion Gap 
Body Surface Area (BSA) 
Creatinine Clearance 
Stack Overflow 

Я хочу добавить «String» перед текстом и «String» после окончания текста.Как связать строку, добавив префикс и постфикс с помощью javascript

Я После выражения, который прекрасно работает в Excel: -

= СЦЕПИТЬ ("", B1 "")

Выход: -

<string>Anion Gap</string> 
<string>Body Surface Area (BSA)</string> 
<string>Creatinine Clearance</string> 
<string>Stack Overflow</string> 

сверху, может кто-нибудь пожалуйста помогите мне. Мне нужен код пользовательского интерфейса (html-формат), в котором он должен принять файл excel из поля пользователя или textarea, где Пользователь может поместить свой текст, а затем применить этот код и сгенерировать его, как показано на выходе.

+1

Что такое текущее решение? – geckon

+2

Почему флаг python? Кажется, это не связано с python. – Nerkyator

+0

Было бы неплохо предоставить небольшой пример. Его легче отлаживать и находить решение. Позже это решение может быть применено ко всей вашей проблеме. –

ответ

1

OK. Вот код JavaScript, который будет генерировать нужный вам результат:

pad - это рекурсивная функция, которая генерирует любые требуемые конечные нули.

function pad(num, diff) { 
    return diff > 0 ? pad(num, diff - 1) + 0 : num; 
} 

processString делает основную часть работы. Обратите внимание, что этот код работает только на одноразрядные номера в соответствии с вашим вопросом. т.е. он не работал бы на 1.12.1 должным образом, например.

function processString(num) { 

    // remove any existing dots 
    var tmp = num.replace(/\.+/g, ''); 

    // calculate the difference between the desired length of the string 
    // and the current string 
    var diff = 4 - tmp.length; 

    // generate a template 
    var tmpl = '<string>#{padded}</string>'; 

    // if the diff is greater than zero return the padded string 
    // with the dots added back in otherwise return the original string 
    var padded = diff > 0 ? pad(tmp, diff).split('').join('.') : num; 
    return tmpl.replace('#{padded}', padded); 
} 

Тогда, конечно, вам нужно добавить текстовую к странице:

<textarea id="area"></textarea> 
<button id="submit">Submit</button> 

И некоторые дополнительные JavaScript, чтобы захватить текст добавлен и преобразовать его:

function processArea() { 
    var area = document.getElementById('area'); 

    // split the text at each carriage return 
    var arr = area.value.split(/\n/); 

    // loop over each string and process it 
    for (var i = 0, l = arr.length; i < l; i++) { 
     arr[i] = processString(arr[i]); 
    } 

    // repopulate the text area with the output 
    area.value = arr.join('\r\n'); 
} 

DEMO

Если, с другой стороны, вам необходимо учитывать номера с mul автовоза цифры, заменить вышеуказанные две функции с этим:

function pad(num) { 
    if (num.length < 4) { 
     num.push('0'); 
     pad(num); 
    } 
    return num; 
} 

function processString(num) { 
    var tmp = num.split('.'); 
    var diff = 4 - tmp.length; 
    var tmpl = '<string>#{padded}</string>'; 
    var padded = diff > 0 ? pad(tmp).join('.') : num; 
    return tmpl.replace('#{padded}', padded); 
} 

DEMO

+0

Спасибо Sooooooooo Много @ Andy. Действительно работает. –

+0

Также я хочу преобразовать то же самое в текст, тогда это возможно? –

+0

@ Энди, как работать с несколькими цифрами тогда? Если у меня есть строка вроде: 1.12.25.0 –

Смежные вопросы