正则表达式找到特定的点并逃脱它们

时间:2012-03-17 10:57:54

标签: javascript regex

我有一个字符串“#letme.doit.now .emiter#another.test#plus.test。” 我需要找到所有具有后续内容的点,这些点位于以#开头并且没有空格的那些部分中。 实际上比赛必须保持点1,2,4和5.所有其他点不必在比赛中。

2 个答案:

答案 0 :(得分:3)

这将根据要求找到并逃脱点:

演示:http://jsfiddle.net/q9hLQ/

var string = "#letme.doit.now .emiter #another.test #plus.test.";
string = string.replace(/#\S+/g, function(full_match) {
    return full_match.replace(/\.(?!$)/g, '\\.');
});
// Output: #letme\.doit\.now .emiter #another\.test #plus\.test.
  1. 查找每个连续的# +非空白字符。
  2. 在这些匹配项中,使用反斜杠+点替换除末尾点以外的所有点。

答案 1 :(得分:0)

这就是你想要的。

匹配

"#letme.doit.now .emiter #another.test #plus.test.".match(/#[a-zA-Z0-9]+(\.\w+)+/g)

将返回["#letme.doit.now", "#another.test", "#plus.test"]

逃跑

"#letme.doit.now .emiter #another.test #plus.test.".replace(/(#[a-zA-Z0-9]+)\.(\w)/g, '$1\\.$2')