Javascript - 检测字符串中的某些字符并替换这些字符之间的内容

时间:2013-10-31 07:21:00

标签: javascript regex

我有点像Javascript和一般的正则表达式,并且会感谢我能得到的所有帮助!

考虑以下命令:[无论在何处执行]

/禁止汤姆{打破规则} 5

我需要做的是检测{}之间的字符串,用那里的下划线替换空格(_)并删除新字符串周围的花括号。 结果示例:

/禁止Tom Breaking_The_Rules 5

谢谢, 汤姆。

4 个答案:

答案 0 :(得分:0)

使用string.toCharArray()并解析数组以匹配{和空格以替换它们。

答案 1 :(得分:0)

你真的不需要RegEx,因为这可以通过普通的javascript来实现:

<script type="text/javascript">
    var str = "/Ban Tom {Breaking The Rules} 5";
    var oldStr = str.substring(str.indexOf("{"), (str.indexOf("}") + 1));
    var newStr = oldStr.replace(/ /g, "_").replace("{", "").replace("}", "");

    alert(str.replace(oldStr, newStr));
</script>

答案 2 :(得分:0)

var str = '/Ban Tom {Breaking The Rules} 5';  
var patt=new RegExp('{[^}].*}',i);  
var res = patt.exec(str);  

//include res check here.....  
var newStr = res[0].replace(/ /g, '_');  
newStr = newStr.replace(/[{}]/g, '');  
str = newStr.replace(res[0], newStr);

答案 3 :(得分:0)

// The Message:
var foo = "/Ban Tom {Breaking The Rules} 5";

// Replace Whitespace in braces:
foo = foo.replace(/\s+(?=[^\{\}]*\})/g, "_");

//Replace braces with nothing:
foo.replace(/[\{\}]/g,""):

第一个正则表达式解释:

\s+        // Match whitespace
(?=        // If followed by:
[^\{\}]*   // Any number of characters except braces
\}         // The closing brace
)          // End of the lookahed

This post提供了大部分信息,我只是将其改编为javascript。