Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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_Regex - Fatal编程技术网

Javascript 我可以显示普通字符而不是正则表达式吗

Javascript 我可以显示普通字符而不是正则表达式吗,javascript,regex,Javascript,Regex,这是我的代码: $scope.currentTextClass = $scope.currentText1.replace( test5 = /<img .* \/>/g, "<div class=\"container\">" + test5.source + "</div>" ); scope.currentTextClass=$scope.currentText1.replace( test5=/g, “”+test5.source+“

这是我的代码:

$scope.currentTextClass = $scope.currentText1.replace(
    test5 = /<img .* \/>/g,
    "<div class=\"container\">" + test5.source + "</div>"
);
scope.currentTextClass=$scope.currentText1.replace(
test5=/g,
“”+test5.source+“”
);
但是
test5.source
的字符串是
”。我想要的是完整的
img
标记,而不是原始正则表达式

是否可以返回原始的
img
标记?

问题在于正则表达式的源代码是
。所有
source
返回的是不带
/
s或标志(
g
,在本例中)的正则表达式

source属性返回一个包含regexp对象的源文本的字符串,它不包含两边的两个正斜杠和任何标志

-

如果要访问完全匹配,可以提供一个函数作为
replace
调用的第二个参数。它本身有3个参数:匹配、匹配位置和全文

第一个参数是您在这里想要的:

$scope.currentTextClass = $scope.currentText1.replace(
    /<img .* \/>/g,
    function(match) {
        return "<div class=\"container\">" + match + "</div>";
    }
);
scope.currentTextClass=$scope.currentText1.replace(
//g,,
功能(匹配){
返回“+匹配+”;
}
);

您的问题不太有意义,请尝试重新编写并解释问题所在problem@Elena我刚刚回答了这个问题,因为它很有道理。如果有帮助的话,我已经编辑了这个问题,添加了一些额外的格式。非常感谢!你不知道我为这个问题挣扎了多久,我甚至在问这个问题时遇到了问题,这是我第三次发布问题,因为人们都很讨厌。你赢得了很多选票@金老板不用担心。我认为否决这一点的人可能对RegExp对象的原型属性做得不多,并且对您使用
test5.source
感到困惑。