NSRange underlineRange = ...;
NSRange fullRange = NSMakeRange(0, mutableAttributedString.length);
underlineRange = NSIntersectionRange(underlineRange, fullRange);
if (underlineRange.length == 0) {
// intersection is empty - underlineRange was entirely outside the string
} else {
// underlineRange is now a valid range in mutableAttributedString
}