Javascript 正则表达式,替换以开头的所有单词@
我有一个正则表达式,它将所有以@开头的单词放入span标记中。 我已经完成了所需要的,但我不确定我是否完全理解我在这里所做的Javascript 正则表达式,替换以开头的所有单词@,javascript,regex,Javascript,Regex,我有一个正则表达式,它将所有以@开头的单词放入span标记中。 我已经完成了所需要的,但我不确定我是否完全理解我在这里所做的 content.replace(/(@\S+)/gi,“$1”) ()表示匹配整个单词,对吗 @的意思是以@开头 \S表示“后跟任何内容,直到出现空白” 但是,如果不在\S后面添加+号,它为什么只匹配第一个字母 任何输入都将不胜感激。content.replace(/(@\S+)/gi,“$1”) content.replace(/(@\S+)/gi,"<span&
content.replace(/(@\S+)/gi,“$1”)
content.replace(/(@\S+)/gi,“$1”)
content.replace(/(@\S+)/gi,"<span>$1</span>")
(@\S+
是一个捕获组,它捕获@
后跟1个或多个(+
表示1个或多个)非空白字符(\S
是非空白字符)g
表示全局,即替换所有实例,而不仅仅是第一个匹配i
表示不区分大小写$1
获取第一个捕获组捕获的内容
因此,
i
是不必要的,但不会影响任何内容。\S
是任何非空白字符,a+
表示一个或多个。所以
@\S
->一个@后跟一个非空白字符
@\S+
->后跟一个或多个非空白字符的@
\S表示“后跟任何内容,直到出现空白”
这不是
\s
的意思。它是“任何非空白字符”,即一个非空白字符。共享将哈希标记更改为链接的代码
/(@\S+)gi/
1st Capturing group (@\S+)
@ matches the character @ literally
\S+ match any non-white space character [^\r\n\t\f ]
Quantifier: Between one and unlimited times, as many times as possible, giving back as needed [greedy]
g - all the matches not just first
i - case insensitive match
var p=$(“p”);
var string=p.text();
p、 html(string.replace(/#(\S+)/gi',)代码>
在这里测试代码35; abc#123#xyz