Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript |使用正则表达式替换字符串_Javascript_Arrays_Regex_String - Fatal编程技术网

javascript |使用正则表达式替换字符串

javascript |使用正则表达式替换字符串,javascript,arrays,regex,string,Javascript,Arrays,Regex,String,我有一个类字符串:width-100必需验证电子邮件验证唯一电子邮件输入成功 并希望找到(特殊格式的)子字符串。 结果应该是:validate email validate unique email 我的代码: var ok = "width-100 required validate-email validate-unique-email input-success".replace(/validate-([A-Z]+)/gi, function(match, $1, $2) { ret

我有一个类字符串:
width-100必需验证电子邮件验证唯一电子邮件输入成功
并希望找到(特殊格式的)子字符串。 结果应该是:
validate email validate unique email

我的代码:

var ok = "width-100 required validate-email validate-unique-email input-success".replace(/validate-([A-Z]+)/gi, function(match, $1, $2) {
   return $1;
});

console.log(ok);
但这不起作用。哪里有错误? 谢谢

试试这个。这将捕获单词匹配


您可以在这里使用前瞻

/\bvalidate-([A-Z-]+)(?= |$)/gi
例如:

> var str = "width-100 required validate-email validate-unique-email input-success";
undefined
> console.log(str.match(/\bvalidate-([A-Z-]+)(?= |$)/gi).join(' '));
validate-email validate-unique-email

您可以执行以下操作:

代码 输出 注
在本例中,
replace
仅用于迭代匹配项,而不是真正用于替换
str
的实际位。这对我来说很有效,您实际上不需要替换,这就是我使用
String.prototype.match
的原因

var str = "width-100 required validate-email validate-unique-email input-success";

console.log(str.match(/\bvalidate-([a-z]+)/gi).join(' '));

如果您在最后忽略了这个案例,那么为什么必须使用[A-Z]+,难道[A-Z]+还不够吗?我确实可以早些更改它,但字符串编辑问题告诉我它有同样的成本:p@mario23很抱歉拒绝了您的编辑,但在OP的意图中,
“验证”
似乎也是一个可能的大小写字符串
var ok=[];
var str = 'width-100 required validate-email validate-unique-email input-success';

str.replace(/(\bvalidate-\w+\b)/gi, function(match) {
   ok.push(match);
});

console.log(ok);
['validate-email', 'validate-unique']
var str = "width-100 required validate-email validate-unique-email input-success";

console.log(str.match(/\bvalidate-([a-z]+)/gi).join(' '));