javascript - 输入模式 ='[a-zA-Z]' 在 React 应用程序中不起作用

标签 javascript regex html reactjs react-redux

我一直在处理的是文本 input缩小<option><select>作为用户类型。它正在工作,但我现在关心的是安全性,用户传递给 input 的内容,以及潜在的恶意条目。

我想我可以做类似 <input placeholder='[a-zA-Z]' /> 的事情但它仍然允许在文本框中输入其他字符。

我在这里做错了什么,有什么替代方案可以只允许输入字母数字?

onInputChange(term) {
    this.setState({ term });
}

renderOptionsSelect(term) {
    return _.map(this.props.pos_list, p => {
        var searchTerm = this.state.term.toLowerCase();
        if (p.pos_code.toLowerCase().match(searchTerm)) {
            return (
                <option key={p.pos_code} value={p.pos_code}>{p.pos_code}</option>
            );                        
        }
    });
}

// render the main element of the container
render() {
    return (
        <div className='panel panel-default'>
            <div className='panel-heading'>
                <h4><strong>Basic Query</strong></h4>
            </div>

            <div className='panel-body'>
                <input 
                    pattern='[a-zA-Z]'
                    className='form-control' 
                    placeholder='Enter Keyword or Position Code' 
                    value={this.state.term}
                    onChange={event => this.onInputChange(event.target.value)}
                />

                <hr />
                <h4>Position:</h4>
                <select className='form-control'>
                    <option></option>
                    {this.renderOptionsSelect()}
                </select>
                <br />
                <h4>Data Cut:</h4>
                <select className='form-control' disabled={true} />

            </div>
        </div>
    ); 
}

最佳答案

这很简单。你:

  1. 删除模式属性。
  2. input 事件而不是 change 事件注册您的 onInputChange 方法(onInput={event => this.onInputChange(event .target.value)}).
  3. 在更改状态之前清除 onInputChange 中接收到的值。

关于javascript - 输入模式 ='[a-zA-Z]' 在 React 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48233264/

相关文章:

python - css 文件在 Django 应用程序中不起作用

javascript - JQuery Mousemove div 类 e.pageX 位置

regex - 使用 jQuery Datatables 2016 将带有换行符的值导出到 Excel 中的单个单元格中

c - 如何使用正则表达式捕获组?

regex - 使用安全#! $ 正则表达式中的变量?

html - 容器两侧的背景颜色不同

javascript - 无法从登录 Activity 移至管理类别,然后发送回主目录?

包含一个或多个指定字母的字符串的 JavaScript 正则表达式

javascript - 如何在 Vue 中有条件地添加一个类?

HTML5 内联 SVG 自动裁剪空白