Edit in JSFiddle

function deleteRange() {
  var range = document.createRange();
  var p1 = document.getElementById("p1");
  var helloNode = p1.firstChild.firstChild;
  var worldNode = p1.lastChild;

  range.setStart(helloNode, 2);
  range.setEnd(worldNode, 3);
  range.deleteContents(); // 범위 삭제
}

function extractRange() {
  var range = document.createRange();
  var p1 = document.getElementById("p2");
  var helloNode = p1.firstChild.firstChild;
  var worldNode = p1.lastChild;

  range.setStart(helloNode, 2);
  range.setEnd(worldNode, 3);

  var fragment = range.extractContents(); // 범위 잘라내기
  var out = document.getElementById("out2");
  out.appendChild(fragment);
}

function cloneRange() {
  var range = document.createRange();
  var p1 = document.getElementById("p3");
  var helloNode = p1.firstChild.firstChild;
  var worldNode = p1.lastChild;

  range.setStart(helloNode, 2);
  range.setEnd(worldNode, 3);

  var fragment = range.cloneContents(); // 범위 복제
  var out = document.getElementById("out3");
  out.appendChild(fragment);
}
<button type="button" onclick="deleteRange()">deleteContents()</button>
<p id="p1"><b>Hello</b> world!</p>
<hr>
<button type="button" onclick="extractRange()">extractContents()</button>
<p id="p2"><b>Hello</b> world!</p>
<p id="out2"></p>
<hr>
<button type="button" onclick="cloneRange()">cloneContents()</button>
<p id="p3"><b>Hello</b> world!</p>
<p id="out3"></p>