我想检查字符串的某个部分是否包含子字符串。
到目前为止,这是我的代码:
var sHexValue = document.getElementById("ColourInput").value;
fnDebugMessage(sHexValue);
if (sHexValue.includes("#", 0)) {
fnDebugMessage("TRUE");
}
因此,当前它从字符串中的位置ColourInput
检查#
是否包含0
,但是我想对其进行限制,因此它仅检查{{1 }}
我该怎么做? 感谢您的帮助
答案 0 :(得分:2)
备用,使用startsWith()
document.getElementById("ColourInput").value.startsWith('#')
答案 1 :(得分:1)
使用它来获取第一个元素:
document.getElementById("ColourInput").value.charAt(0) === "#"
如果我正确理解的话,它将只检查值的第一个字符“#”,这就是您要查找的。 p>
答案 2 :(得分:1)
尝试正则表达式
/^#/.test(sHexValue)
要获取完整的十六进制颜色,请使用
/^#[A-Fa-f0-9]{6}$/
function check() {
let sHexValue = document.getElementById("ColourInput").value;
let msg="Not contains: #";
if(/^#/.test(sHexValue)) msg="contains: #";
console.log(msg);
if(/^#[A-Fa-f0-9]{6}$/.test(sHexValue)) console.log("Color :)");
}
<input id="ColourInput" onkeyup="check()">
答案 3 :(得分:1)
另一种方法是,检查'#'char的索引为0。那么在我们检查第0个索引的情况下,如果有多个#字符,这将起作用。
import React, { Component } from 'react';
import { Form, Button, Col, Row } from 'react-bootstrap';
class AddCourse extends Component {
state = {
courseName: '',
courseType: '',
courseGrade: '',
courseHours: '',
coursePassGrade: ''
}
onChange(e) {
console.log('e.target', e.target.coursehours);
this.setState({
[e.target.name]: e.target.value });
}
onSubmit = (e) => {
e.preventDefault();
this.props.addCourse(this.state);
this.setState({
courseName: '',
courseType: '',
courseGrade: ''
})
}
render() {
const courses = this.props.courses.map(course =>
<option
key={course.id}
value={course.courseName}
coursehours={course.courseHours}
coursepassgrade={course.coursePassGrade}
>
{course.courseName}
</option>
)
return (
<div>
<Form onSubmit={this.onSubmit}>
<Row>
<Col>
<Form.Group controlId="exampleForm.ControlSelect1">
<Form.Control
as="select"
name="courseName"
defaultValue={this.state.courseName}
onChange={this.onChange.bind(this)}
>
<option value="">Course...</option>
{courses}
</Form.Control>
</Form.Group>
</Col>
<Col>
<Form.Group controlId="formGridState">
<Form.Control as="select"
name="courseType"
defaultValue={this.state.courseType}
onChange={this.onChange.bind(this)}
>
<option value="">Select...</option>
<option value="true">a</option>
<option value="false">m</option>
</Form.Control>
</Form.Group>
</Col>
<Col>
<Form.Group controlId="formBasicGrade">
<Form.Control
type="number"
placeholder="Course grade"
name="courseGrade"
defaultValue={this.state.courseGrade}
onChange={this.onChange.bind(this)}
/>
</Form.Group>
<Form.Group controlId="courseHours">
<Form.Control
type="hidden"
name="courseHours"
defaultValue={this.props.courseHours}
/>
</Form.Group>
</Col>
<Col>
<Form.Group controlId="submit">
<Button variant="primary" type="submit">
Submit
</Button>
</Form.Group>
</Col>
</Row>
</Form>
</div>
)
}
}
export default AddCourse
答案 4 :(得分:1)
使用此代码检查字符串中char的索引是否为0。
sHexValue.indexOf("#") === 0
注意::IE浏览器可能不支持include()方法。因此,只需检查此方法,然后告诉我您是否要面对。 谢谢。