文字列を検索し、ハッシュタグをスパンでラップしたいのですが。
私はここで素晴らしい答えを見つけました。
var repl = some_string.replace(/(^|\W)(#[a-z\d][\w-]*)/ig, '$1<span>$2</span>');
しかし、私は自分のニーズに合うようにそれを更新したいと思います。正規表現で機能しないスペースが含まれているタグがいくつかあります。スペースがある場合、技術的にはハッシュタグではないことは知っていますが、それは私が処理しなければならないデータです。
例えば:
text text text text #tag1 #tag2 tag2secondWord #tag3 / withSlash #tag4 #tag5
あげる:
text text text text <span>#tag1</span> <span>#tag2</span> tag2secondWord <span>#tag3</span> / withSlash <span>#tag4</span> <span>#tag5</span>
そして私は欲しいと思います:
text text text text <span>#tag1</span> <span>#tag2 tag2secondWord</span> <span>#tag3 / withSlash</span> <span>#tag4</span> <span>#tag5</span>
私は自分で答えを考え出そうとしましたが、正規表現にはあまり慣れていません。
この正規表現を使用できます:
(^|\W)(#.*?(?= #|$))
ハッシュ(#
)が見つかると、スペースの後にハッシュが続くか、文字列の終わりに遭遇するまで、すべての文字が保存されます。
var str = 'text text text text #tag1 #tag2 tag2secondWord #tag3 / withSlash #tag4 #tag5';
console.log(str.replace(/(^|\W)(#.*?(?= #|$))/ig, '$1<span>$2</span>'));
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加