js提取企业名称的关键字(简称),生成文字LOGO

1 篇文章 0 订阅

用户键入企业名称(全称)提取关键字(简称)

实现思路:

1、判断用户键入的字符串长度,长度 <=4,则不做处理,直接返回该字符串
2、判断字符串是否以 “xx省” 开头,如果是则删除该部分
3、判断字符串是否以 “xx市” 开头,如果是则删除该部分
4、判断字符串后缀是否以 “xxxx” 结尾,例如“有限公司”,如果是则删除该部分
5、判断字符串中是否存在特殊符号,例如 “(xxxx)”,如果存在则删除该部分
6、考虑“不是常规的”企业名称(以上过滤截取过程均被跳过),或者以上过程截取完之后长度 >4 ,则直接截取字符串前4位

总结一句话:去头去尾,文字太长取前四位

以下↓企业名为例:

深圳市平安科技有限公司
小米科技有限责任公司
上海远丰信息科技(集团)有限公司
软件开发定制工作室

代码实现:

准备工作,全局变量

let province = arr.province // xx省 json数据
let cities = arr.cities // xx市 json数据
let companySuffixes = arr.company_suffixes // xxxx 后缀json数据

公用函数,获取数组集合中最短的字符串

例如:[ ‘深圳市平安科技有限公司’, ‘平安科技’ ],返回值为 “平安科技”

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市” 开头,如果是则删除该部分

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” 结尾,例如 “有限公司”,如果是则删除该部分

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

最终输出结果:

平安
小米
远丰信息
软件开发
结果

如果觉得有用随手点个赞吧,谢谢
关注我,不定时分享技术干货~

提取关键字后可生成 LOGO等操作,需要源码的铁汁 请关注下方公众号,并回复【企业logo】
以上所用到的json文件,关注公众号后回复【简称提取】
公众号

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z.week

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值