![](/img/trans.png)
[英]Can I put impose a time limit on JavaScript (e.g., using an iframe)?
[英]How can I validate image sizes (expressed as e.g. “5X4”) using JavaScript?
我必須使用 JavaScript 進行圖像大小驗證。 尺寸以文本形式提供,格式為nXn
— 例如“5X4”或其他形式。
我已經測試了提供的尺寸是否包含“X”:
if(inputVal.indexOf("X")==-1)
{
$('#erSize').append("*Size should be (e.g) 6X4");
}
但是這個測試也接受例如“aXg”。
如何檢查“X”兩側輸入的值是否僅為整數?
使用正則表達式
var pattern = /[0-9]\X[0-9]/;
inp = "AXG"; //Sample
if(!pattern.test(inp))
alert("Error");
您可以使用 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.
}
}
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"
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 更具可讀性,並且您可以控制和理解每個步驟。
現場測試用例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.