Не проще ли в таком случае очищать кнопкой? Следите за кареткой, вставили, выбрали очистить, значит опять установили каретку.
А можно и без этого, но тут с гибкостью не очень:
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<style>
input {
padding: 5px 5px 5px 38px;
}
input + label:after {
content: attr(data-path);
position: absolute;
top: 13px;
left: 15px;
color: #555;
}
</style>
<input id="domain" autocomplete="off" /> <label for="domain" data-path="path/"></label>
<a href="#" data-href="domain.as/path/" target="_blank"></a>
<script>
var d = "path/", field = document.querySelector('input');
field.addEventListener("keypress", function(e) {
e.preventDefault()
});
field.addEventListener("paste", function(e) {
this.value = ''
});
field.addEventListener("input", function() {
var a = document.querySelector('a');
a.href = a.dataset.href + this.value;
a.textContent = d + this.value;
});
</script>
</body>
</html>