我想要的是,有一个最大长度为 5 的文本框。允许的值是..
- 任何整数 // 例如 1, 3, 9, 9239 都是有效的
- 实数,小数点后精确一位 // 例如。1.2, 93.7 有效,61.37, 55.67 无效
- 也可以只输入小数和之后的数字,即 0.7 是有效输入(将被视为 0.7)
我找到了这个页面,http://www.regular-expressions.info/refadv.html
所以我的想法是
- 有一个数字
- 如果后面有一个数字和一个小数,那么后面一定有一个数字
- 如果没有数字,则必须有一个小数,然后是一个数字
所以,我做的正则表达式是..
a single digit one or more => /d+
an optional decimal point followed by exactly one digit => (?:[.]\d{1})?
if first condition matches => (?(first condition) => (?((?<=\d+)
then, match the option decimal and one exact digit =>(?((?<=\d+)(?:[.]\d{1})?
else => |
find if there is a decimal and one exact digit => (?:[.]\d{1}){1}
check the whole condition globally => /gm
整体表达 =>
(?(?<=\d+)(?:[.]\d{1}){1}|(?:[.]\d{1}){1})+/gm
但它没有输出任何东西..
这是小提琴
ps:那里的pattern1和pattern2,和我之前的问题有关。