我有输入字段来放置电话号码,我想限制每个特殊字符,如
+, - 。
来自我的输入字段和onPaste事件。 我的代码不起作用,我仍然可以将这些特殊字符粘贴到我的输入字段
onPaste(e) {
let str = e.target.value;
let newstr = str.replace(/[+-.]/g, '');
if (str !== newstr) {
e.preventDefault();
}}
我的输入代码
<InputText
name="officePhone"
placeholder="Office Phone"
label="Office Phone"
type="number"
onChange={e => this.onChange(e, 'form')}
value={this.state.form.officePhone}
onPaste={e => this.onPaste(e)}
/>
答案 0 :(得分:3)
您的onPaste
函数正在查看e.target.value
,它需要获取的是使用e.clipboardData.getData('Text')
从剪贴板中粘贴的数据。
onPaste(e) {
const str = e.clipboardData.getData('Text');
const newStr = str.replace(/[+-.]/g, '');
if (str !== newStr) {
e.preventDefault()
}
}