无法删除输入中的第一个值

时间:2018-01-11 07:39:27

标签: javascript reactjs

var check = /^[^-\s]+[a-zA-Z\s]*$/;

我的HTML:

<input type="text" onChange={(e) => this.onTextChange(e)} required/> 

功能:

onTextChange(event) {
  let fieldVal = event.target.value;var check = /^\S+[a-zA-Z\s]*$/;
  if(check.test(fieldVal)){

  } else{

  }
}

如果我在函数中使用它来限制开始时的空间意味着它工作正常。但是在输入退格时,第一个字符不会删除。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

也许这就是你要找的东西?

这将删除字符串之前的任何空格(如果有的话),并且不会阻止您处理您的退格问题。

正则表达式:/^\s+/基本匹配字符串开头的一个或多个(+)空白字符(\s)(^)。

我们将此匹配替换为空字符串''

&#13;
&#13;
class App extends React.Component {
  constructor() {
    super();
    this.state = {val: ""};
  }
  
  onTextChange = (e) => {
    let str = e.target.value;
    str = str.replace(/^\s+/, '');
    this.setState({val: str});
  }
  
  render() {
    return (
      <div>
        <input value={this.state.val} onChange={this.onTextChange} />
      </div>
    );
  }
}

ReactDOM.render(<App />, document.getElementById('app'));
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>
&#13;
&#13;
&#13;