You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AHK脚本需求:将姓名转邮箱格式从John.Smith@test.com改为JSmith@test.com

AutoHotkey 脚本:生成首字母+姓氏格式的邮箱

我来帮你搞定这个邮箱模板的脚本修改需求!原来的逻辑是把全名转成First.Last@test.com,现在要改成FirstInitialLast@test.com(比如John Smith → JSmith@test.com),下面是完整的可运行脚本,再给你拆解关键步骤:

; 弹出输入框获取客户全名
InputBox, ClientName, Client Name, Please enter the client's full name:, , 300, 150
if ErrorLevel  ; 处理用户取消输入的情况
    return

; 拆分姓名为数组,提取首字母和姓氏
NameParts := StrSplit(ClientName, A_SPACE)
if (NameParts.Length() >= 2) {
    ; 提取名字的第一个字符作为首字母
    FirstInitial := SubStr(NameParts[1], 1, 1)
    ; 提取姓氏(如果有中间名,改成NameParts[NameParts.Length()]取最后一个部分)
    LastName := NameParts[2]
    ; 拼接首字母+姓氏
    UserID := FirstInitial . LastName
} else {
    ; 兼容单字姓名的情况(可选逻辑)
    UserID := ClientName
}

; 移除所有可能残留的空格(防止用户输入多空格)
StringReplace, UserID, UserID, %A_SPACE%, , All

; 生成最终邮箱地址
EmailAddress := UserID . "@test.com"

; 把邮箱复制到剪贴板并弹窗提示
Clipboard := EmailAddress
MsgBox, Generated Email:`n%EmailAddress%

关键逻辑说明:

  • StrSplit函数:把输入的全名按空格拆分成数组,比如John Smith会拆成["John", "Smith"],方便分别提取名和姓氏。
  • SubStr函数:截取名字的第一个字符,比如从John里拿到J。
  • 容错处理:如果用户只输入了单字姓名(比如Lee),脚本会直接用这个单字作为用户名,避免报错。
  • 扩展优化:如果需要支持带中间名的姓名(比如John Michael Smith),只需要把LastName := NameParts[2]改成LastName := NameParts[NameParts.Length()],这样会自动取最后一个部分作为姓氏,生成JSmith@test.com。

内容的提问来源于stack exchange,提问作者CY3R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:45:35