在javascript中,在单词边界的span标签中包装每个单词的正则表达式
Regular expression for wrapping every word in span tag on word boundaries in javascript
我想在<span>
标签中包装字符串的每个单词,而不破坏任何现有的html标签,也不包括任何标点符号。
例如:
This... is, an. example! <em>string</em>?!
应该被包装为:
<span>This</span>... <span>is</span>, <span>an</span>. <span>example</span>!
<span><em>string</em></span>?!
理想情况下,我只需要包装单词,而不需要其他内容。
除撇号外,其他都要进行换行。
it's
=> <span>it's</span>
give 'em
=> <span>give</span> <span>'em</span>
teachers'
=> <span>teachers'</span>
现在我使用一个非常简单的正则表达式:
str.replace(/([^'s<>]+)(?:(?='s)|$)/g, '<span>$1</span>');
我在stackoverflow上找到了它。但是它只在空格处换行每个单词,也换行标点符号,这在我的例子中是不希望的。
我知道我应该为自己这么不擅长正则表达式而感到羞愧。
有人能帮帮我吗?
多谢!
试试这个regex:
var str = "This string... it's, an. example! <em>string</em>?!";
str.replace(/([A-Za-z0-9'<>/]+)/g, '<span>$1</span>');
// "<span>This</span> <span>string</span>... <span>it's</span>, <span>an</span>. <span>example</span>! <span><em>string</em></span>?!"
我玩了一下,让它工作:
String toMarkUp = "Each word needs a strong tag around it. I really want to wrap each and every word";
String markedUp = toMarkUp.replaceAll("''b(''w+)''b","<span>$1</span>");
正则表达式捕获每一个包含1个或多个字符('w+)的单词,这些字符被单词边界包围,并使用正向查找组在用$1替换时引用它,1是正则表达式中的第一个捕获组。
输出:
<span>Each</span> <span>word</span> <span>needs</span> <span>a</span> <span>strong</span> <span>tag</span> <span>around</span> <span>it</span>. <span>I</span> <span>really</span> <span>want</span> <span>to</span> <span>emphasize</span> <span>each</span> <span>and</span> <span>every</span> <span>word</span>
相关文章:
- 用于匹配不带字符的单词的正则表达式
- 在正则表达式中搜索单词
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 正则表达式用于在javascript中存储单词之前和之后
- 只使用正则表达式匹配单词后面的所有内容
- 用特定的javascript正则表达式替换每个单词
- 正则表达式以更改字符串中的某些单词
- 匹配给定的正则表达式,除非存在给定的单词(lookahead或lookbacking)
- 如何通过JavaScript正则表达式匹配不同语言中的单词
- Javascript 正则表达式在特定单词或数字之后拆分
- 短语中类似单词的正则表达式交替
- 与冒号(不包括冒号)之间的正则表达式单词匹配
- 连续重复的单词以使用正则表达式进行更改
- 用于匹配带空格和不带空格的多个单词的正则表达式
- 如何使用正则表达式 JavaScript 替换具有特定单词的整行
- 使用正则表达式获取多个单词,单词之间留有空格
- 一个具有精确pettern的单词的正则表达式
- JS正则表达式匹配单词,包括用空格括起来的单词
- 使用 JavaScript 正则表达式获取所有没有 HTML 标签的单词
- 在javascript中查找特定单词(正则表达式)中的字符类型