Пользователь вводит название компании (полное название) для извлечения ключевых слов (аббревиатура).
Идеи реализации:
1. Определить длину введенной пользователем строки, если длина <= 4, то строка будет возвращена без обработки 2. Определить,
начинается ли строка с "xx провинция", и если да, то удалить эту часть
. 3. Определите, начинается ли строка с «xx city», если да, удалите эту часть
4. Определите, заканчивается ли суффикс строки на «xxxx», например «Co., Ltd.», если да, удалите эту часть 5. Определить, есть ли в строке спецсимволы
, например "(xxxx)", если есть, удалить эту часть
после того, как описанный выше процесс перехвачен> 4, затем непосредственно перехватывают первые 4 бита строки
Подытожим одним предложением: убираем голову и хвост, если текст слишком длинный, берем первые четыре символа
Следующий пример названия компании ↓:
Shenzhen Pingan Technology Co., Ltd.
Xiaomi Technology Co., Ltd.
Shanghai Yuanfeng Information Technology (Group) Co., Ltd.
Студия разработки и настройки программного обеспечения
Код:
препараты, глобальные переменные
let province = arr.province // xx省 json数据
let cities = arr.cities // xx市 json数据
let companySuffixes = arr.company_suffixes // xxxx 后缀json数据
Открытая функция для получения кратчайшей строки в коллекции массивов
Например: ['Shenzhen Ping An Technology Co., Ltd', 'Ping An Technology'], возвращаемое значение — "Ping An Technology"
function getStrLenShort(nameList) {
let tempName = ''
if (nameList.length > 0) {
tempName = nameList[0]
let temp = ""
for (let i = 1; i < nameList.length; i++) {
temp = nameList[i]
if (tempName.length > temp.length) {
tempName = temp
}
}
}
return tempName
}
1. Определить длину строки, введенной пользователем, если длина <= 4, то она не будет обработана и строка будет возвращена напрямую.
let length = name.length // name值为以上列举的企业名称
if (length <= 4) {
return name
}
2. Определите, начинается ли строка с «xx провинция», если да, удалите эту часть
Добавьте отфильтрованные значения в массив nameList и используйте публичную функцию getStrLenShort, чтобы получить кратчайшую строку в массиве в качестве результата фильтрации, и следующие шаги такие же.
let nameList = [] // 储存企业名称过滤后的字符串数组集合
for (let i = 0; i < province.length; i++) {
let prefix = province[i]
if (name.startsWith(prefix)) {
// 以 xxxx省 开头
let nameSub = name.substring(prefix.length)
nameList.push(nameSub)
} else {
nameList.push(name)
}
}
name = getStrLenShort(nameList)
3. Определите, начинается ли строка с «xx city», если да, удалите эту часть
let nameList1 = [] // 储存企业名称过滤后的字符串数组集合
for (let i = 0; i < cities.length; i++) {
let prefix = cities[i]
if (name.startsWith(prefix)) {
// 以 xxxx市 开头
let nameSub = name.substring(prefix.length)
nameList1.push(nameSub)
} else {
nameList1.push(name)
}
}
name = getStrLenShort(nameList1)
4. Определите, заканчивается ли суффикс строки на «xxxx», например «Co., Ltd.», если да, удалите эту часть.
let nameList2 = [] // 储存企业名称过滤后的字符串数组集合
for (let i = 0; i < companySuffixes.length; i++) {
let suffix = companySuffixes[i]
if (name.endsWith(suffix)) {
// 以 xxxx 结尾
let substring = name.substring(0, name.length - suffix.length)
nameList2.push(substring)
} else {
nameList2.push(name)
}
}
name = getStrLenShort(nameList2)
5. Определить, есть ли в строке специальные символы, например "(xxxx)", и удалить эту часть, если она есть
if (name.includes('(')) {
name = name.split('(')[0]
}
6. Учитывайте «нетрадиционные» имена предприятий (вышеупомянутый процесс фильтрации и перехвата пропускается) или длину после перехвата вышеуказанного процесса> 4, затем непосредственно перехватывайте первые 4 цифры строки
if (name.length > 4) {
name = name.substring(0, 4)
}
Окончательный вывод:
Ping An
Xiaomi
Yuanfeng Информация
Разработка программного обеспечения
Если вы найдете это полезным, не стесняйтесь поставить лайк, спасибо,
что следите за мной и время от времени делитесь техническими галантерейными товарами~
После извлечения ключевых слов вы можете сгенерировать ЛОГОТИП и другие операции.Если вам нужен исходный код, обратите внимание на официальный аккаунт ниже и ответьте на файл
json, использованный в приведенном выше [логотипе компании], следуйте официальному аккаунту и ответьте [упомянутый в качестве извлечения]