我正在努力弄清楚如何重构我的代码来获得首字母和姓氏,但如果只有一个单词来获得没有首字母的单词。什么时候只有一个单词得到第一个字母?例如,如果它是name@abc.com然后变成nname@abc.com,如果它是johndoe@abc.com是正确的jdoe@abc.com有办法解决这个问题吗?如果有人能帮忙的话,我会很感激的。下面是我的代码:
var fullName = item.getValue('abc12312').toLowerCase().split(' ');
var lastName = fullName[fullName.length - 1];
var firstLetter = fullName[0].charAt(0);
if(fullName != '') {
var email = firstLetter + lastName + '@abc12123.com';
}
您需要了解代码块中提到的每个函数的作用。此外,请定义/提及您的代码块中是什么项目,因为我们没有任何知识/参考。
// get the full name
var fullName = item.getValue('abc12312').toLowerCase().split(' ');
// get the last name
var lastName = fullName[fullName.length - 1];
// get the first letter
var firstLetter = fullName[0][0]
if (lastName != ''){
const email = firstLetter + lastName + '@abc12123.com';
}else{
const email = fullName[0] + '@abc12123.com';
}
还没有测试过代码,但大多数情况下是可以工作的
// get input value from HTML and convert it as an array ;
const fullName = document.getElementById('fullname').toLowerCase().split(' ');
let firstLetterOrWord;
if(fullName.length === 1){
// only one word
firstLetterOrWord = fullName[0]
} else {
// two words
// first character of first elemment of array
firstLetterOrWord = fullName[0][0]
}
// if not found -> empty string
const lastName = fullName[1] || '';
const email = firstLetterOrWord + lastName + '@abc12123.com';
<input id="fullname" type="text">
您所需要做的就是创建一个函数/方法:
- 接受字符串作为输入值
- 计算所提供字符串值中的字符数
- 如果它超过2,那么你可以使用JavaScript indexOf或数组索引方法来返回第一个和最后一个。
- 或如果它的计数较低,则返回第一个字符比2。