从名字和姓氏生成用户名时考虑短名称

时间:2019-01-25 16:26:30

标签: javascript username servicenow

我正在尝试修改此脚本,该脚本根据名字和姓氏的输入生成用户名。用户名应始终等于5个字符。

此脚本未考虑较短的名字和/或姓氏,从而导致脚本输出的用户名少于5个字符。关于如何删除少于5个字符的用户名的任何想法?

usernameFormula: function(initial, result, loop) {
  var full_record = '';
  //Remove spaces from the name
  var fn = initial.first_name.replace(/[^A-Za-z]/g,'');
  var ln = initial.last_name.replace(/[^A-Za-z]/g,'');
  if (initial.u_employee == true){
    if (loop > 0 && loop < 6) {
      result += ln.substring(0, 6 - loop) + fn.substring(0, loop);
    }
    if (loop >= 6 && loop <= 10) {

      result += fn.substring(0, 11 - loop) + ln.substring(0, loop - 5);
    }
  }
  if (loop == 11) {
    result += 'manual_task';
  }
  return result;
},

示例:

输入:

Ben Snot

输出:用户名”:[“ SNOTB”,“ SNOTBe”,“ SNOBen”,“ SNBen”,“ SBen”,“ BenS”,“ BenSN”,“ BenSNO”,“ BeSNOT “,” BSNOT“,” manual_task“]}

1 个答案:

答案 0 :(得分:0)

您可以.filter生成的列表:

var validNames = generatedNames.filter(function (x) {
  return x === 'manual_task' || x.length === 5;
});