2016-04-17 5 views
1

Чтобы получить все 4 букв слова разделителей любого я написал следующий код:Получить все 4-буквенное слово Regex

function select() { 
 
    var html = document.getElementById('p').innerHTML; 
 
\t var fourLettered = html.match(/[^a-zA-Z|^$][a-zA-Z]{4}[^a-zA-Z|^$]/g) || []; 
 
\t document.getElementById('other').innerHTML = fourLettered.join('<br>'); 
 
}
p { 
 
\t background-color: #eee; 
 
} 
 

 
.red { 
 
    color: red; 
 
}
<p id="p" contenteditable="true">This is <i>a</i> <span class="red">paragraph</span> <b>with</b> lots of markup and-lots-of letters;with?four char</p> 
 
<p id="other"></p> 
 
<button onclick="select()">SELECT</button>

Однако, я не может получить 4 слова письма в начале или конце тега p, т.е. This & char в этом случае.

Также выбирается разметка/диапазон>. Как решить эту проблему?

+0

насчет слов, разделенных '-'? См. Мой ответ ниже, поскольку я его обновил. – timolawl

+0

Я тоже хочу их. – dorado

+1

@timolawl, лучше указать на http://stackoverflow.com/help/someone-answers для новых пользователей. –

ответ

5

Попробуйте это:

function select() { 
 
    var html = document.getElementById('p').textContent; 
 
\t var fourLettered = html.match(/\b[a-zA-Z]{4}\b/g) || []; 
 
\t document.getElementById('other').innerHTML = fourLettered.join('<br>'); 
 
}
p { 
 
\t background-color: #eee; 
 
} 
 

 
.red { 
 
    color: red; 
 
}
<p id="p" contenteditable="true">This is <i>a</i> <span class="red">paragraph</span> <b>with</b> lots of markup and-lots-of letters;with?four char</p> 
 
<p id="other"></p> 
 
<button onclick="select()">SELECT</button>

Смежные вопросы