- Mark as New
- Follow
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report
Hi, I think you could use a RegEx but I would use a split as well, something like;
var pageNumbers = TextField1.rawValue.split(",");
var sum = 0;
var isValid = true;
for (var i = 0; i < pageNumbers.length; i++)
{
var pages = pageNumbers[i].split("-");
// Check for all number elements
if (!pages.every(function(element) { return (element == parseInt(element, 10)); } ) )
{
xfa.host.messageBox("Please enter comma separated list of pages number, with a range separated by a hyphen, e.g. 25-30,45-60,65,67");
isValid = false;
break;
}
if (pages.length > 2)
{
xfa.host.messageBox("Please enter a page range separated by a hyphen, e.g. \"45-60\"");
isValid = false;
break;
}
if (pages.length == 1)
{
sum++;
}
else
{
var start = parseInt(pages[0]);
var end = parseInt(pages[1]);
if (end < start)
{
xfa.host.messageBox("Please enter a valid page range separated by a hyphen, with the start page first, e.g. \"45-60\"");
isValid = false;
break;
}
sum += (end - start + 1);
}
}
if (isValid)
{
app.alert(sum);
}
Might need some more error handling but hopefully will get you started.
Regards
Bruce
Views
Replies
Total Likes