如何在 reactjs 数字验证中打印数字 5 或 6
How to print digit 5 or 6 in reactjs number validation
我已经为示例编写了代码TCA/2015/12345
validatetcanumber = e => {
var constraint1 = (e.target.value.indexOf("TCA/") === 0);
var constraint2 = (e.target.value.lastIndexOf("/") === 7);
var constraint3 = false;
var constraint4 = false;
if (constraint1 && constraint2) {
constraint3 = (e.target.value.slice().split("/")[1].length === 4);
constraint4 = (e.target.value.slice().split("/")[2].length === 5);
}
if (constraint3 && constraint4)
this.setState({ tca_number: e.target.value, tcaerror: '' });
else
this.setState({ tca_number: e.target.value, tcaerror: "Invalid Tca number" })
}
但我想打印 5 位或 6 位数字的两种情况,例如 1。TCA/2015/12345 或 TCA/2015/123456
2.TCA/2014/64587 或 TCA/2014/645872
TCA/2015/5 digits
或 TCA/2015/6 digits
下面是我的序列化程序代码
check_tca_number = data['tca_number']
pattern = re.compile("^TCA/([0-9]{2,4})/([0-9]{5,6})$")
if not pattern.match(check_tca_number):
raise serializers.ValidationError("TCA number is not valid")
您可以在这里使用正则表达式测试方法:
var input = ["TCA/2015/123456", "TCA/2014/64587", "TCA/2014/645872", "TCA/2015/123", "ABC/2015/12345"];
input.forEach(function(num) {
console.log(num + " valid? " + /^TCA\/\d{4}\/\d{5,6}$/.test(num));
});
我尝试了很多不同的方法,但只是在我的主代码中加入下面的代码,问题就解决了
constraint4 = (e.target.value.slice().split("/")[2].length === 5) || (e.target.value.slice().split("/")[2].length === 6);
我已经为示例编写了代码TCA/2015/12345
validatetcanumber = e => {
var constraint1 = (e.target.value.indexOf("TCA/") === 0);
var constraint2 = (e.target.value.lastIndexOf("/") === 7);
var constraint3 = false;
var constraint4 = false;
if (constraint1 && constraint2) {
constraint3 = (e.target.value.slice().split("/")[1].length === 4);
constraint4 = (e.target.value.slice().split("/")[2].length === 5);
}
if (constraint3 && constraint4)
this.setState({ tca_number: e.target.value, tcaerror: '' });
else
this.setState({ tca_number: e.target.value, tcaerror: "Invalid Tca number" })
}
但我想打印 5 位或 6 位数字的两种情况,例如 1。TCA/2015/12345 或 TCA/2015/123456 2.TCA/2014/64587 或 TCA/2014/645872
TCA/2015/5 digits
或 TCA/2015/6 digits
下面是我的序列化程序代码
check_tca_number = data['tca_number']
pattern = re.compile("^TCA/([0-9]{2,4})/([0-9]{5,6})$")
if not pattern.match(check_tca_number):
raise serializers.ValidationError("TCA number is not valid")
您可以在这里使用正则表达式测试方法:
var input = ["TCA/2015/123456", "TCA/2014/64587", "TCA/2014/645872", "TCA/2015/123", "ABC/2015/12345"];
input.forEach(function(num) {
console.log(num + " valid? " + /^TCA\/\d{4}\/\d{5,6}$/.test(num));
});
我尝试了很多不同的方法,但只是在我的主代码中加入下面的代码,问题就解决了
constraint4 = (e.target.value.slice().split("/")[2].length === 5) || (e.target.value.slice().split("/")[2].length === 6);