web api instance method
Range: compareBoundaryPoints() method
The compareBoundaryPoints() method of the Range interface compares the boundary points of the Range with those of another range.
Syntax
compareBoundaryPoints(how, otherRange)
Parameters
how- : A constant describing the comparison method:
Range.END_TO_ENDcompares the end boundary-point of thisRangeto the end boundary-point ofotherRange.Range.END_TO_STARTcompares the start boundary-point of thisRangeto the end boundary-point ofotherRange.Range.START_TO_ENDcompares the end boundary-point of thisRangeto the start boundary-point ofotherRange.Range.START_TO_STARTcompares the start boundary-point of thisRangeto the start boundary-point ofotherRange.
- : A constant describing the comparison method:
otherRange- : A
Rangeto compare boundary points with the range.
- : A
Return value
A number.
-1if the specified boundary-point of thisRangeis before the specified boundary-point ofotherRange.0if the specified boundary-point of thisRangeis the same as the specified boundary-point ofotherRange.1if the specified boundary-point of thisRangeis after the specified boundary-point ofotherRange.
This API is consistent with the general convention that, when comparing A to B, a negative number means A comes before B and vice versa (see for example sort()). The ranges are compared in the direction of this to other, the same as localeCompare(). However, the boundary points are specified in the reverse order for the how parameter: END_TO_START compares the start of this to the end of other.
Exceptions
NotSupportedErrorDOMException- : Thrown if the value of the
howparameter is invalid.
- : Thrown if the value of the
Examples
Below, we create two ranges on the same text node and compare their different boundary points.
const text = new Text("0123456789");
const thisRange = new Range();
thisRange.setStart(text, 1);
thisRange.setEnd(text, 6);
const otherRange = new Range();
otherRange.setStart(text, 1);
otherRange.setEnd(text, 4);
// The ranges look like this:
// thisRange start v---------v thisRange end
// 0 1 2 3 4 5 6 7 8 9
// otherRange start ^-----^ otherRange end
// this start is *same as* other start
thisRange.compareBoundaryPoints(Range.START_TO_START, otherRange); // 0
// this end is *after* other start
thisRange.compareBoundaryPoints(Range.START_TO_END, otherRange); // 1
// this start is *after* other end
thisRange.compareBoundaryPoints(Range.END_TO_START, otherRange); // -1
// this end is *after* other end
thisRange.compareBoundaryPoints(Range.END_TO_END, otherRange); // 1
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.