创建仅允许数字,小数和逗号的输入

时间:2016-11-07 11:55:46

标签: javascript reactjs

我需要输入的能力只接受数字,小数和逗号。现在使用type=number意味着我限制为数字和小数,但我不确定如何允许逗号。任何人都可以建议我能做些什么吗?

JS

var StopPrice = React.createClass({
  getInitialState() {
    return {
        stopPrice: 92.99
    }
  },

  updateStopPrice(stopPrice) {
    this.setState({
        stopPrice
    })
  },

  onChange(event) {    
    var stopPrice = event.target.value;

    this.setState({
        stopPrice
    });
  },

  render() {
    return <div>
      <input type="number" value={this.state.stopPrice} onChange={this.onChange} />
    </div>
  }
});

JS小提琴:http://jsfiddle.net/kyllle/mjq9omyx/

1 个答案:

答案 0 :(得分:0)

根据docs

  

value =浮点数
  表示数字的字符串。

而且,如果你更进一步,到spec for floating point,你会注意到你不能有任何其他角色。

要实现所需的行为,您可以使用pattern属性并指定正则表达式,例如

<input pattern="\d+((\.|,)\d+)?" />

正则表达式:

\d+((\.|,)\d+)?

允许数字(\ d),然后是可选部分:
点或逗号(。|,)和更多数字\ d +。