RegExp 替换不替换为模式
RegExp replace do not replaces with pattern
我想用##-##(# := 任何数字符号)替换####。
if (/^([0-9]{2})([0-9]{2})$/.test(str)) {
str = str.replace("/^([0-9]{2})([0-9]{2})$/", "-");
console.log(str);
}
在控制台中我得到####(不是##-##)。
我做错了什么?
您需要将正则表达式而不是字符串传递给替换函数 - 在您的情况下,您正在尝试替换字符串文字 /^([0-9]{2})([0-9]{2})$/
str = str.replace(/^([0-9]{2})([0-9]{2})$/, "-");
var str = '4455';
snippet.log('before: ' + str);
str = str.replace(/^([0-9]{2})([0-9]{2})$/, "-");
snippet.log('after: ' + str);
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
我想用##-##(# := 任何数字符号)替换####。
if (/^([0-9]{2})([0-9]{2})$/.test(str)) {
str = str.replace("/^([0-9]{2})([0-9]{2})$/", "-");
console.log(str);
}
在控制台中我得到####(不是##-##)。
我做错了什么?
您需要将正则表达式而不是字符串传递给替换函数 - 在您的情况下,您正在尝试替换字符串文字 /^([0-9]{2})([0-9]{2})$/
str = str.replace(/^([0-9]{2})([0-9]{2})$/, "-");
var str = '4455';
snippet.log('before: ' + str);
str = str.replace(/^([0-9]{2})([0-9]{2})$/, "-");
snippet.log('after: ' + str);
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>