Javascript 允许用户在HTML中只输入分数和整数(而不是混合数)?

Javascript 允许用户在HTML中只输入分数和整数(而不是混合数)?,javascript,html,regex,Javascript,Html,Regex,正如上面的问题所述,我如何将用户输入限制为分数(不包括混合数)和整数?示例为3/4或-5,但不是-3 4/5 我还希望程序将字符限制为整数和分数。因此,我不希望允许额外的字符,如空格或字母 我相信有一种方法可以用正则表达式实现这一点,这是我更喜欢的答案。您可以使用regex[-]?[0-9]*[\/]?[0-9]+,然后利用输入中的模式属性: 我是在JavaScript中完成的,请检查该行是否仅为整数,或者该行是否仅为分数,如果不是,请用找到的分数替换输入。如果需要任何不同的行为,只需更改in

正如上面的问题所述,我如何将用户输入限制为分数(不包括混合数)和整数?示例为3/4或-5,但不是-3 4/5

我还希望程序将字符限制为整数和分数。因此,我不希望允许额外的字符,如空格或字母


我相信有一种方法可以用正则表达式实现这一点,这是我更喜欢的答案。

您可以使用regex
[-]?[0-9]*[\/]?[0-9]+
,然后利用
输入中的
模式
属性:


我是在JavaScript中完成的,请检查该行是否仅为整数,或者该行是否仅为分数,如果不是,请用找到的分数替换输入。如果需要任何不同的行为,只需更改inputValidator函数

输入已在模糊上验证,您必须从输入框中移除鼠标并单击外部

const allIntegers=/^(?:[+-]?\d+(?:|$)+$/;
常量所有分数=/^(?:[+-]?\d+\/\d+(?:$)+$/;
函数输入验证器(obj){
常量文本=对象值;
如果(!allIntegers.test(text)&&!allFractions.test(text)){
警报(“不正常!”);
obj.value=(text.match(/[+-]?\d+\/\d+/g)| |[]).join(“”);
}否则{
警报(“正常”);
}
}

您可以使用此过滤器:



这是一个很好的答案。我唯一想要的是,不使用pattern属性,而是使用一个oninput值,然后将我不需要的字符替换为零,并允许使用您在正则表达式代码中指定的字符。总之,不允许在文本框中输入字符,而是允许输入字符的错误。@BillJoe我会看看我能做什么,但这与简单的正则表达式大不相同。一个好的开始是
,它只允许数字、负数或正斜杠。@BillJoe OK。那你为什么不用它呢?因为它还没有完成。我可以允许双破折号、双斜线等。我仍在处理所有不允许的事情。如果我找到答案,我会回答的。这很有效。谢谢虽然你不能把两个负数加上一个分数,但那只会简化为一个正分数。YW。好的,我提到了你的描述和你给出的例子。
/^((?:\d+(?:\/-?\d*)?)。$/
我相信这就是上面的内容,如果你想要一个负数除以一个负数。如果我错了,请纠正我。是的,那是正确的