【发布时间】:2013-10-06 11:53:36
【问题描述】:
我有一个这样的控制器:
function Ctrl( $scope ){
$scope.str = " Misty Mountain Hop ";
}
还有这样的视图:
<div ng-controller="Ctrl">
<p>{{ str }}</p> <!-- This one is ok -->
<p>{{ str.split( "Mountain")[0] }}</p> <!--Even this one is fine too -->
<p>{{ str.replace( /Mountain/ , "Plain" ) }}</p> <!-- This one is bad -->
</div>
所以如果我尝试使用replace 方法,它会报错:
Syntax Error: Token 'Mountain' is unexpected ...
问题是:为什么?
【问题讨论】:
-
我怎样才能在你链接到的小提琴中重现它?单击“运行”不会产生任何错误,它只是打印代码(未替换)。
-
您可以使用
RegExp构造函数来解决它:str.replace(new RegExp('Mountain'), 'Plain')。请注意,没有分隔符,您需要将所有反斜杠和修饰符加倍放入第二个参数see MDN -
顺便说一句,您为什么尝试在 HTML 中执行此逻辑?我认为 HTML 仅代表
View(MVC) -
@TimPietzcker 在控制台中可以看到错误
-
@MaximShoustin 我的观点有非常具体的用例,所以我不想把这个功能放在范围内..
标签: javascript regex angularjs