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

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

实现思路:

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文件,关注公众号后回复【简称提取】
公众号

猜你喜欢

转载自blog.csdn.net/weixin_45295253/article/details/117511389