document.getElementById('inp').addEventListener("keyup",check);
function check(e){
const regex = /<[a-zA-Z]+>/g;
while ((m = regex.exec(e.target.value)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
document.getElementById('result').innerText = match;
});
}
}
<input id='inp'/> Type a tag in here
<div id='result'></div>
3条答案
按热度按时间8yoxcaq71#
您的问题遗漏了一些细节。以下是基于以下假设的答案:
<xyz>
模式,其中xyz
具有1+个字母字符此外,还不清楚是否需要提取带尖括号或不带尖括号的alpha字符,因此下面是一个同时显示这两种字符的答案:
正则表达式1的解释:
<
--尖括号[a-zA-Z]+
-具有1+个字母字符的字符类>
--角括号regex 2的解释:
(?<=<)
-尖括号的正向后查找[a-zA-Z]+
-具有1+个字母字符的字符类(?=>)
-尖括号的正向前查找请注意,并非所有浏览器都支持lookbehind,特别是Safari。
了解有关regex的更多信息:https://twiki.org/cgi-bin/view/Codev/TWikiPresentation2018x10x14Regex
lnvxswe22#
〈[a-zA-Z]+〉
可能就是你要找的
62lalag43#
您可以使用
<[a-zA-Z]+>
。一些解释:
[a-zA-Z]
-匹配a-z或A-Z(小写或大写)中的任何字符。+
-匹配+
之前的一个或多个字符。