我在使用正则表达式时遇到了一些问题。 当第三个字段填充一个数字和一个以空格分隔的字符串时,我需要启用第四个字段,但由于某种原因我无法使其工作。
这是模式:\d+ *?.*? .*
这是fiddle :
function validateStreetNumber(variable){
var reg=new RegExp('/\d+ *?.*? .*');
console.log(reg);
var compare=reg.test(variable);
return compare;
}
$(document).ready(function(){
$('#state').prop('disabled',true);
$('#address').prop('disabled',true);
$('#number').prop('disabled',true);
$('#city').on("input",function(){
var value=$(this).val();
if(value==''){
$('#state').prop('disabled',true);
$('#address').prop('disabled',true);
$('#number').prop('disabled',true);
}
else{
$('#state').prop('disabled',false);
}
});
$('#state').on("change",function(){
var value=$(this).val();
if(value=='select'){
$('#address').prop('disabled',true);
$('#number').prop('disabled',true);
}
else{
$('#address').prop('disabled',false);
}
});
$('#address').on("input",function(){
var value=$(this).val();
var exp=validateStreetNumber(value);
if(!exp){
$('#number').prop('disabled',true);
}
else if(exp){
$('#number').prop('disabled',false);
}
});
});
input, select{
width: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="#" id="test" name="test">
<input type="text" id="city" name="city" maxlength="100" /><br>
<select id="state" name="state">
<option value="select">Select</option>
<option value="aragua">Aragua</option>
<option value="carabobo">Carabobo</option>
<option value="miranda">Miranda</option>
<option value="zulia">Zulia</option>
<option value="bolivar">Bolívar</option>
</select><br>
<input type="text" id="address" name="address" maxlength="100"/><br>
<input type="text" id="number" name="number" maxlength="8"/><br>
</form>
(对不起我的英语)
最佳答案
您的正则表达式 - new RegExp('/\d+ *?.*? .*')
- 计算结果为 /\/d+ *?.*? .*/
正则表达式:一个 /
,后跟一个或多个 d
字母、零次或多次空格、任何 char 零次或多次、空格以及任何 0+ 个字符。问题是您在开头有 /
和不正确转义的 d
(构造函数符号中需要 2 个反斜杠)。
您需要使用以下正则表达式:
var reg=/^\d+\s/;
它检查字符串是否以 1+ 位数字开头且后面有空格。
添加 .*
或 .*?
是没有意义的,因为您只对字符串开头的内容感兴趣。
详细信息:
^
- 字符串开始\d+
- 1 位或更多数字\s
- 空格。
关于javascript - 正则表达式无法正常工作 - 字符串必须包含一个数字和一个以空格分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42845169/