2

str.replace(/\w*(\ || --> 一个标记可以表示任何字符或字符串?<-- || )/g, function() {return "(" + arguments[0] + ") "})

4

2 回答 2

4

点 ( .) 匹配任何 (1) 个字符;.+匹配长度至少为 1.*的字符串,匹配长度至少为 0 的字符串。

于 2013-02-23T20:14:04.500 回答
3

句点用于表示任何不是换行符的字符,但要表示任何字符,您可以使用具有两个互补集的集合,例如所有字母数字字符和所有非字母数字字符:

str = str.replace(/\w*([\W\w])/g, "($1)");

这将匹配单个字符,如果要匹配多个字符,则必须指定多少个。[\W\w]{1,3}例如将匹配一到三个字符。[\W\w]+会将所有内容匹配到字符串的末尾。

请注意,对于这样的简单替换,您不需要回调,只需将字符串$1替换为第一个捕获的值。


编辑:
想一想,由于字符遵循与字母数字字符匹配的集合,因此它必须是非字母数字,所以就可以了\W

    str = str.replace(/\w*(\W)/g, "($1)");
于 2013-02-23T20:14:17.603 回答