如何姓名转拼音
场景描述
解决客户中英文姓名转换需求,同样可以作用在任意需要中文转拼音的需求中。
实现方式
代码块方式
通过代码块中引用pinyin库来对输入的字段做转换,再通过客户要求如: 每个字首字母大写,其他字符保持不变,每个中文转拼音后间隔开,将输入的内容按要求做转换。
Qlinker方式
通过调用接口来实现直接转为英文或拼音,例:调用https://www.tianapi.com/内接口直接转为英文
表单设计
代码块方式:

Qlinker方式:

代码块内容
注:7.0.0版本无需修改代码可以使用,专有云客户可能因为版本不同需要运维同事帮助安装pinyin库才能使用
代码块中仅需要替换输入变量中的字段即可实现转换需求,其中如果仅需要首个中文首字母大写则修改下面的对于规则。
// 引入 pinyin 库
const pinyin = require('pinyin').default;
// 输入变量
let name = qf_field.{name$$2ABA678DD$$};
// 用于存储转换后的拼音结果
let result = "";
// 将输入字符串按字符分割为数组,方便遍历处理
let chars = name.split('');
for (let char of chars) {
if (/[\u4e00-\u9fa5]/.test(char)) {
// 使用 pinyin 库转换为拼音数组
const options = {
style: pinyin.STYLE_NORMAL
};
const pinyinResult = pinyin(char, options);
// 获取拼音并将首字母大写,然后添加空格
let pinyinWithUpperFirst = pinyinResult[0][0].charAt(0).toUpperCase() + pinyinResult[0][0].slice(1);
result += " " + pinyinWithUpperFirst + " "; // 在拼音前后加空格
} else {
result += char; // 非中文字符直接拼接
}
}
// 去除多余空格
result = result.trim().replace(/\s{2,}/g, ' ');
// 使用 qf_output 对象按照要求格式输出
qf_output = {
output: result
};
运行测试
测试返回的内容为需求格式则为成功,解析后在字段中关联即可实现。


Qlinker内容
配置内容
根据接口文档仅需要添加一个需要翻译的字段,将key放在URL即可实现
测试解析


实现效果
代码块

Qlinker
