Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 检查字符串的第一个字母是否为大写_Reactjs - Fatal编程技术网

Reactjs 检查字符串的第一个字母是否为大写

Reactjs 检查字符串的第一个字母是否为大写,reactjs,Reactjs,我试图检查字符串的第一个字母是否为大写 charAt不适用于我,如果您有其他解决方案检查第一个字母是否为大写,我将不胜感激 我尝试过这样检查-this.state.firstName[0]==this.state.firstName[0]。toUpperCase但它对我也不起作用 class Profile extends Component { state = { details: { firstName: '', lastName: '',

我试图检查字符串的第一个字母是否为大写

charAt不适用于我,如果您有其他解决方案检查第一个字母是否为大写,我将不胜感激

我尝试过这样检查-this.state.firstName[0]==this.state.firstName[0]。toUpperCase但它对我也不起作用


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?是的,我错过了细节………这个答案只考虑了最标准的拉丁字母,它将失败。