如何在 TypeScript 中缩写驼峰式文本字符串 / JavaScript
How to Abbreviate camel-case text string in TypeScript / JavaScript
我有一些大 table.column 名字需要缩写。或者更确切地说 table 名称需要缩写。
以下面的 table.col 个名称为例,它们应该是什么样子:
agentByState5Minutes.agentId ----> aBS5M.agentId
contactReasonByMail.agentName -----> cRBM.agentName
如您所见,table 名称是大小写和数字的混合体。在我的函数中,我将 table 名称从列名称中拆分出来以使其更容易:
protected columnNameConvert(colName: string): string{
this.log.info('columnNameConvert:colName:'+ colName);
let colNameSplit: Array<string> = colName.split('.');
let tableName: string = colNameSplit[0];
let realColName: string = colNameSplit[1];
return colName;
}
table名称是否可以使用正则表达式文本操作进行缩写?
我会使用 replace
来匹配不是大写字母、数字或字符串开头的任何内容,同时寻找 .
和(在beginning) 检查位置不在字符串的开头:
const change = str => str.replace(
/(?!^)[^A-Z\d](?=[^.]*\.)/g,
''
);
console.log(
change('agentByState5Minutes.agentId'), // ----> aBS5M.agentId
change('contactReasonByMail.agentName') // -----> cRBM.agentName
);
(?!^)[^A-Z\d](?=[^.]*\.)
表示:
(?!^)
- 字符串开头的负前瞻(确保匹配的位置不在字符串的开头)
[^A-Z\d]
- 除了大写字母或数字之外的任何内容
(?=[^.]*\.)
- 确保匹配的字符最终后跟 .
在 Typescript 语法中:
const columnNameConvert = (colName: string) => colName.replace(
/(?!^)[^A-Z\d](?=[^.]*\.)/g,
'',
);
(请记住,如果 TS 可以自行推断,则无需明确表示 return 类型)
我有一些大 table.column 名字需要缩写。或者更确切地说 table 名称需要缩写。
以下面的 table.col 个名称为例,它们应该是什么样子:
agentByState5Minutes.agentId ----> aBS5M.agentId
contactReasonByMail.agentName -----> cRBM.agentName
如您所见,table 名称是大小写和数字的混合体。在我的函数中,我将 table 名称从列名称中拆分出来以使其更容易:
protected columnNameConvert(colName: string): string{
this.log.info('columnNameConvert:colName:'+ colName);
let colNameSplit: Array<string> = colName.split('.');
let tableName: string = colNameSplit[0];
let realColName: string = colNameSplit[1];
return colName;
}
table名称是否可以使用正则表达式文本操作进行缩写?
我会使用 replace
来匹配不是大写字母、数字或字符串开头的任何内容,同时寻找 .
和(在beginning) 检查位置不在字符串的开头:
const change = str => str.replace(
/(?!^)[^A-Z\d](?=[^.]*\.)/g,
''
);
console.log(
change('agentByState5Minutes.agentId'), // ----> aBS5M.agentId
change('contactReasonByMail.agentName') // -----> cRBM.agentName
);
(?!^)[^A-Z\d](?=[^.]*\.)
表示:
(?!^)
- 字符串开头的负前瞻(确保匹配的位置不在字符串的开头)[^A-Z\d]
- 除了大写字母或数字之外的任何内容(?=[^.]*\.)
- 确保匹配的字符最终后跟.
在 Typescript 语法中:
const columnNameConvert = (colName: string) => colName.replace(
/(?!^)[^A-Z\d](?=[^.]*\.)/g,
'',
);
(请记住,如果 TS 可以自行推断,则无需明确表示 return 类型)