Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
173 views
in Technique[技术] by (71.8m points)

javascript - Regex, replace all words starting with @

I have this regular expression that puts all the words that starts with @ into span tags. I've accomplished what is needed but i'm not sure that i completely understand what i did here.

content.replace(/(@S+)/gi,"<span>$1</span>")

  1. The () means to match a whole word, right?
  2. The @ means start with @.
  3. The S means "followed by anything until a whitespaces" .

But how come that if don't add the + sign after the S , it matches only the first letter?

Any input would be appreciated .

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

S is any non-whitespace character and a+ means one or more of a. So

@S -> An @ followed by one non-whitespace character.

@S+ -> An @ followed by one or more non-whitespace characters


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...