Reactjs 检查字符串的第一个字母是否为大写
我试图检查字符串的第一个字母是否为大写 charAt不适用于我,如果您有其他解决方案检查第一个字母是否为大写,我将不胜感激 我尝试过这样检查-this.state.firstName[0]==this.state.firstName[0]。toUpperCase但它对我也不起作用Reactjs 检查字符串的第一个字母是否为大写,reactjs,Reactjs,我试图检查字符串的第一个字母是否为大写 charAt不适用于我,如果您有其他解决方案检查第一个字母是否为大写,我将不胜感激 我尝试过这样检查-this.state.firstName[0]==this.state.firstName[0]。toUpperCase但它对我也不起作用 class Profile extends Component { state = { details: { firstName: '', lastName: '',
class Profile extends Component {
state = {
details: {
firstName: '',
lastName: '',
ID: '',
Email: ''
}
};
OnSubmit = e => {
e.preventDefault();
if (
this.state.firstName.charAt(0) ===
this.state.firstName.charAt(0).toUpperCase()
) {
console.log('error');
}
};
OnChange = e => {
e.preventDefault();
this.setState({
details: { ...this.state.details, [e.target.name]: e.target.value }
});
};
render() {
return (
<div>
<div className="container text-center mt-4" style={{ width: '500px' }}>
<form className="px-4 py-3" onSubmit={this.OnSubmit}>
<div className="form-group">
<label>First Name:</label>
<input
type="text"
className="form-control"
onChange={this.OnChange}
name="firstName"
/>
</div>
<div className="form-group">
<label>Last Name:</label>
<input
type="text"
className="form-control"
onChange={this.OnChange}
name="lastName"
/>
</div>
<div className="form-group">
<label>ID Number:</label>
<input
type="text"
className="form-control"
onChange={this.OnChange}
name="ID"
/>
</div>
<div className="form-group">
<label>Email:</label>
<input
type="text"
className="form-control"
onChange={this.OnChange}
name="Email"
/>
</div>
<button type="submit" className="btn btn-secondary mt-3">
Check
</button>
</form>
</div>
</div>
);
}
}
export default Profile;
charAt给我错误-UncaughtTypeError:无法读取未定义的属性“charAt”检查字符串中的第一个字母是否为大写的简单方法。检查下面的演示
import React, { Component } from 'react';
import { render } from 'react-dom';
import Hello from './Hello';
import './style.css';
class App extends Component {
constructor() {
super();
this.state = {
name: 'React'
};
}
componentWillMount()
{
if (this.state.name[0] >= 'A' && this.state.name[0] <= 'Z')
this.setState({ name: "First letter is uppercase" })
else
this.setState({ name: "First letter is NOT uppercase" })
}
render() {
return (
<div>
<p>
{this.state.name}
</p>
</div>
);
}
}
render(<App />, document.getElementById('root'));
在“拥有详细信息对象”状态下,您可以通过详细信息对象访问名字和姓氏
class Profile extends Component {
state = {
details: {
firstName: '',
lastName: '',
ID: '',
Email: ''
}
};
OnSubmit = e => {
e.preventDefault();
if (
this.state.details.firstName.charAt(0) ===
this.state.details.firstName.charAt(0).toUpperCase()
) {
console.log('error');
}
};
OnChange = e => {
e.preventDefault();
this.setState({
details: { ...this.state.details, [e.target.name]: e.target.value }
});
};
render() {
return (
<div>
<div className="container text-center mt-4" style={{ width: '500px' }}>
<form className="px-4 py-3" onSubmit={this.OnSubmit}>
<div className="form-group">
<label>First Name:</label>
<input
type="text"
className="form-control"
onChange={this.OnChange}
name="firstName"
/>
</div>
<div className="form-group">
<label>Last Name:</label>
<input
type="text"
className="form-control"
onChange={this.OnChange}
name="lastName"
/>
</div>
<div className="form-group">
<label>ID Number:</label>
<input
type="text"
className="form-control"
onChange={this.OnChange}
name="ID"
/>
</div>
<div className="form-group">
<label>Email:</label>
<input
type="text"
className="form-control"
onChange={this.OnChange}
name="Email"
/>
</div>
<button type="submit" className="btn btn-secondary mt-3">
Check
</button>
</form>
</div>
</div>
);
}
}
export default Profile;
看起来有一个包含firstName和其他属性的details对象;this.state.details.firstName.charAt0==this.state.details.firstName.charAt0.toUpperCase有效吗?您没有错过this.state.firstName调用中的详细信息吗?像这样。state.details.firstName.charAt0?是的,我错过了细节………这个答案只考虑了最标准的拉丁字母,它将失败。