Как проверить размеры изображения (например, «5X4») с помощью JavaScript? - PullRequest
2 голосов
/ 18 июля 2011

Я должен сделать проверку размера изображения с помощью JavaScript. Размеры представлены в виде текста в виде nXn - например, «5X4» или что-то в этом роде.

Я проверил, содержит ли указанный размер символ «X»:

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

Но этот тест принимает, например, «AXg» также.

Как я могу проверить, что значения, введенные по обе стороны от "X", являются только целыми числами?

Ответы [ 4 ]

2 голосов
/ 18 июля 2011

Использование регулярных выражений

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

http://jsfiddle.net/hFTJb/

1 голос
/ 18 июля 2011

RegEx, вероятно, лучший способ, я приведу «сырой» пример без регулярных выражений, который делает то же самое:

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, и вы можете контролировать и понимать каждый шаг.
Тестовый пример .

1 голос
/ 18 июля 2011
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"
1 голос
/ 18 июля 2011

Вы можете легко сделать это, используя RegEx.

Используйте регулярное выражение как /(\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.
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...