如何使用 JavaScript 验证图像大小(表示为“5X4”)?

发布于 2024-11-24 20:38:45 字数 272 浏览 0 评论 0原文

我必须使用 JavaScript 进行图像大小验证。尺寸以文本形式提供,格式为 nXn — 例如“5X4”或其他。

我已经对提供的尺寸是否包含“X”进行了测试:

if(inputVal.indexOf("X")==-1) 
{
$('#erSize').append("*Size should be (e.g) 6X4");
}

但此测试也接受例如“aXg”。

如何检查“X”两侧输入的值是否仅为整数?

I have to do image size validation using JavaScript. The sizes are provided as text, in the form nXn — e.g. “5X4” or something.

I have done a test for whether the provided size contains an “X”:

if(inputVal.indexOf("X")==-1) 
{
$('#erSize').append("*Size should be (e.g) 6X4");
}

But this test accepts e.g. “aXg” also.

How can I check that the values entered either side of "X" are only integers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

千と千尋 2024-12-01 20:38:46

正则表达式可能是最好的方法,我将给出没有正则表达式的“原始”示例,它做同样的事情:

function ValidateImageSize(imgSize) {
    var arrDimensions = imgSize.toUpperCase().split("X");
    if (arrDimensions.length != 2)
        return false;
    var w = arrDimensions[0] * 1;
    var h = arrDimensions[1] * 1;
    return !isNaN(w) && !isNaN(h) && w > 0 && h > 0;
}

用法:

if (!ValidateImageSize(inputVal)) {
    $('#erSize').append("*Size should be (e.g) 6X4");
}

给出它,因为它比正则表达式更具可读性,并且您可以控制和理解每个步骤。
实时测试用例

RegEx is probably the best way, I'll give "raw" example without regular expressions that is doing the same thing:

function ValidateImageSize(imgSize) {
    var arrDimensions = imgSize.toUpperCase().split("X");
    if (arrDimensions.length != 2)
        return false;
    var w = arrDimensions[0] * 1;
    var h = arrDimensions[1] * 1;
    return !isNaN(w) && !isNaN(h) && w > 0 && h > 0;
}

Usage:

if (!ValidateImageSize(inputVal)) {
    $('#erSize').append("*Size should be (e.g) 6X4");
}

Giving it as it's more readable than RegEx and you can control and understand each step.
Live test case.

恰似旧人归 2024-12-01 20:38:46

您可以使用正则表达式轻松地做到这一点。

使用正则表达式 /(\d+)X(\d+)/g

function isValidInput() {
  var regex = new RegExp(/(\d+)X(\d+)/g);
  var match = regex.exec(inputVal);
  if (match == null) {
    $('#erSize').append("*Size should be (e.g) 6X4");
  } else {
    // here 'match' will be an array of 2 numeric values [D,D] where d is an integer.
  }
}

You can easily do that by using the RegEx.

Use the regular expression as /(\d+)X(\d+)/g

function isValidInput() {
  var regex = new RegExp(/(\d+)X(\d+)/g);
  var match = regex.exec(inputVal);
  if (match == null) {
    $('#erSize').append("*Size should be (e.g) 6X4");
  } else {
    // here 'match' will be an array of 2 numeric values [D,D] where d is an integer.
  }
}
心凉 2024-12-01 20:38:45

使用正则表达式

var pattern = /[0-9]\X[0-9]/;
inp = "AXG"; //Sample
if(!pattern.test(inp))
 alert("Error");

http://jsfiddle.net/hFTJb/

Use Regular Expressions

var pattern = /[0-9]\X[0-9]/;
inp = "AXG"; //Sample
if(!pattern.test(inp))
 alert("Error");

http://jsfiddle.net/hFTJb/

绻影浮沉 2024-12-01 20:38:45
if(/^\d+X\d+$/.test(inputVal)) // add i after the pattern to match x case-insensitive
{
    $('#erSize').append("*Size should be (e.g) 6X4");
}

// accepts "1X1"
// accepts "9999X9999"
// rejects "aaa1X1aaa"
if(/^\d+X\d+$/.test(inputVal)) // add i after the pattern to match x case-insensitive
{
    $('#erSize').append("*Size should be (e.g) 6X4");
}

// accepts "1X1"
// accepts "9999X9999"
// rejects "aaa1X1aaa"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文