Kri*_*lko 3 javascript regex validation
我正在尝试匹配英尺和英寸,但我无法获得“和/或”,因此如果前半部分正确,则验证:
代码:(在 JavaScript 中)
var pattern = "^(([0-9]{1,}\')?([0-9]{1,}\x22)?)+$";
function testing(input, pattern) {
var regex = new RegExp(pattern, "g");
console.log('Validate '+input+' against ' + pattern);
console.log(regex.test(input));
}
Run Code Online (Sandbox Code Playgroud)
有效的测试应该是:
1'1'2"2" 2(假设为英寸)无效的应该是: * 任何其他内容,包括空 *1'1'
但我的正则表达式匹配invalid 1'1'。
删除+末尾的(现在允许多个英尺/英寸实例)并检查是否有空字符串或非法条目,例如1'2使用单独的否定先行断言。我还更改了正则表达式,因此组 1 包含脚,组 2 包含英寸(如果匹配):
^(?!$|.*\'[^\x22]+$)(?:([0-9]+)\')?(?:([0-9]+)\x22?)?$
Run Code Online (Sandbox Code Playgroud)
解释:
^(?!$|.*\'[^\x22]+$)(?:([0-9]+)\')?(?:([0-9]+)\x22?)?$
Run Code Online (Sandbox Code Playgroud)