我一直在寻找一个js版本的PHP preg_replace
函数,目前我找到的是简单的string.replace
。
但是我不确定如何将我的正则表达式转换为JavaScript。这是我的PHP代码:
preg_replace("/( )*/", $str, $str);
例如以下代码:
test test test test
变成:
test-test-test-test
有谁知道我如何在JavaScript中实现这个?
我一直在寻找一个js版本的PHP preg_replace
函数,目前我找到的是简单的string.replace
。
但是我不确定如何将我的正则表达式转换为JavaScript。这是我的PHP代码:
preg_replace("/( )*/", $str, $str);
例如以下代码:
test test test test
变成:
test-test-test-test
有谁知道我如何在JavaScript中实现这个?
var text = 'test test test test';
var fixed = text.replace(/\s+/g, '-');
JavaScript中的string.replace函数也接受正则表达式:
"test test test test".replace(/ +/,'-');
result = subject.replace(/ +/g, "-");
$result = preg_replace('/ +/', '-', $str);
( )*
或( *)
都无关紧要,因为您不需要捕获组的内容,所以根本不需要括号:result = subject.replace(/ */g, "-");
将完全达到相同的效果。 - stema+
而不是*
:你想匹配一个或多个空格,而不是零个或多个。虽然我没有测试过,但否则它可能会产生-t-e-s-t-t-e-s-t-t-e-s-t-t-e-s-t-
。 - Daan Wilmer请参考JavaScript replace函数文档。
在您的情况下,它应该是类似于
var result = str.replace(/\s+/g, '-');
但那只替换了一个空格。现在正在处理:)
/g
以进行全局替换。 - Michael Berkowski'-'
替换,而不是 ''
。 - mellamokb
text
变量中没有类似/\s+/g
的东西。更多信息可以在MDN找到。 - ant_Ti