Это должно сработать, все символы кроме ascii 0-127, которые являются английскими символами, должны быть исключены, от o до 127 также дает вам пробел, +, -, / и знаки препинания, которые полезны, если вы хотите только буквы, то [ ^ Az] должен сделать свое дело, если вам нужны непробельные символы, то [^ Az \ s] должно работать:
document.getElementById('english').addEventListener('input', function(){
this.value = this.value.replace(/[^\x00-\x7F]+/ig, '');
});
Путь реакции:
class InputEnglish extends React.Component {
constructor(){
super();
this.state = {value: ''};
this.onChange = this.onChange.bind(this);
}
onChange(e) {
let val = e.target.value.replace(/[^\x00-\x7F]/ig, '');
this.setState(state => ({ value: val }));
}
render() {
return (<input
value={this.state.value}
onChange={this.onChange}
/>);
}
}
https://codepen.io/anon/pen/QVMgrd