React Base Fiddle (JSX)

Starting point for creating JSFiddles with React.

HTML

<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div id="container">
    <!-- This element's contents will be replaced with your component. -->
</div>

Babel + JSX

class SSNInput extends React.Component {
	constructor(props) {
  	super(props);
    this.state = {
    	ssn: ""
    };
  }
	
  _onInputChange = (event) => {
 		var string = event.target.value;
    string = string.replace(/-/g, "");
    var regex = /^([^\s]{3})([^\s]{2})([^\s]{4})$/g;
    var match = regex.exec(string);
    if (match) {
      match.shift();
      string = match.join("-")
    }
  	this.setState({ssn: string});
  }
  
  render() {
    return (
    	<div>
        <input value={this.state.ssn} onChange={this._onInputChange} maxlength="9"/>
      </div>
    );
  }
}

ReactDOM.render(
  <SSNInput name="World" />,
  document.getElementById('container')
);