0

我是 Javascript 和一般正则表达式的新手,我将不胜感激我能得到的所有帮助!

考虑以下命令:[不管它在哪里执行]

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

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

/禁止汤姆 Breaking_The_Rules 5

谢谢,汤姆。

4

4 回答 4

0

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

于 2013-10-31T07:27:22.843 回答
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>
于 2013-10-31T07:30:24.210 回答
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);
于 2013-10-31T07:35:39.573 回答
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

这篇文章提供了大部分信息,我只是将其改编为 javascript。

于 2013-10-31T07:47:21.687 回答