ion-input-otp
Input OTP 组件是一个专门用于输入一次性密码(OTP)的输入组件。它提供了一个用户友好的验证码输入界面,支持多个输入框和自动焦点管理。
基本用法
该组件默认提供 4 个输入框,这是许多验证码的常见长度。可以使用 length 属性自定义输入框的数量。
类型
type 属性决定输入格式,支持数字或字母数字验证码。它接受两个值:number 和 text。默认使用 type="number" 输入数字验证码。当指定 type="text" 时,它接受字母数字输入。这种灵活性允许处理不同的 OTP 格式,无论是纯数字代码(如短信验证码)还是字母数字代码(如备份代码或恢复密钥)。
type 属性会自动设置 inputmode 和 pattern 属性:
- 当
type="number"时:- 设置
inputmode="numeric"以在移动设备上显示数字键盘 - 设置
pattern="[\p{N}]"以仅允许数字输入
- 设置
- 当
type="text"时:- 设置
inputmode="text"以显示标准键盘 - 设置
pattern="[\p{L}\p{N}]"以允许字母数字输入
- 设置
有关模式验证和自定义的更多详细信息,请参阅模式部分。
形状
shape 属性控制输入框的边框半径,创建圆角或尖角。
填充
fill 属性控制输入框的背景样式,提供边框或填充背景。
尺寸
size 属性为输入框提供不同的尺寸选项。
分隔符
separators 属性在一个或多个输入框之间添加视觉分隔线。分隔符可以通过三种方式定义:
- 以逗号分隔的数字字符串(例如,
"1,3") - 数字数组(例如,
[1, 3]) - 字符串
"all"以在每个输入框之间显示分隔符
数字表示分隔符应出现在哪个索引之后。例如,"1,3" 在第一个和第三个输入框之后显示分隔符。这可以用于创建视觉上不同的输入框分组,但它仍然只有一个值。
状态
组件支持输入框自动样式的各种状态:
- 通过相应属性支持的
disabled和readonly状态 - 表单验证状态:通过 CSS 类在视觉上指示的
valid和invalid - 在 Angular 中:验证状态通过框架的值访问器和表单验证自动管理
- 对于其他框架:开发人员必须手动添加
ion-valid、ion-invalid和ion-touched类 ion-invalid样式仅在触摸后(ion-touched)显示ion-valid样式仅在聚焦时(has-focus)显示
模式
pattern 属性使用正则表达式启用自定义验证。它接受字符串正则表达式或unicode 正则表达式来验证允许的字符。pattern 必须匹配整个值,而不仅仅是子集。默认模式:
type="number":"[\p{N}]"用于匹配任何脚本中的任何数字字符。type="text":"[\p{L}\p{N}]"用于任何脚本中的任何数字字符和任何语言的任何字母。
组件将阻止用户输入任何与指定模式不匹配的字符。开发人员可以通过提供自己的模式字符串来覆盖这些默认值,以匹配特定的输入要求。
使用自定义 pattern 时,请记住 type 属性控制在移动设备上显示哪种键盘:
- 对纯数字模式使用
type="number"以显示数字键盘 - 对包含字母的模式使用
type="text"以显示字母数字键盘
主题
颜色
color 属性更改输入框的调色板。对于 outline 填充,此属性更改光标颜色、高亮颜色和边框颜色。对于 solid 填充,此属性更改光标颜色和高亮颜色。
color 属性不会更改输入 OTP 的文本颜色。要更改文本颜色,请使用 --color CSS 属性。