如何通过添加前缀和后缀与javascript连接字符串

how to concatenate a string by adding prefix and postfix with javascript

本文关键字:javascript 连接 字符串 后缀 何通过 添加 加前缀      更新时间:2023-09-26
Anion Gap
Body Surface Area (BSA)
Creatinine Clearance
Stack Overflow

我想在文本前添加"String",在文本结束后添加"String"。

我有以下表达式在excel中完美运行:-

=连接(" ",B1, " ")

输出

: -

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

从上面,有人能帮我吗?我想要的用户界面代码(html格式),其中它应该接受一个excel文件从用户或文本框,用户可以放置他的文本,然后应用此代码并生成它,如输出所示。

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');
}

演示

另一方面,如果需要用多位数表示数字,则用以下函数替换上述两个函数:

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);
}
演示