我目前正在学习Angular我遇到了转换某个长字符串的问题。
所以,这是我的div,有很多行,由ng-repeat生成:
http://pastebin.com/raw/bJqqUvpY
是的,我知道这很糟糕。我想要做的是从该字符串中删除所有不需要的ng属性和其他东西,因为我将通过ajax将这些数据传递给PHP。
这是我尝试做的事(角度):
$scope.updateHtml = function() {
var testVal = angular.element('#sendHtml').val();
testVal = testVal.replace(/ng-class="{'selected':selection.indexOf($index) != -1}"/g,"");
$scope.sendHtml.html = testVal;
};
但它不起作用。也许是因为短语里面的引号,或者是它?
例如,这可以替换单个字母:
$scope.updateHtml = function() {
var testVal = angular.element('#sendHtml').val();
testVal = 'abcabcabc';
testVal = testVal.replace(/b/g,"");
$scope.sendHtml.html = testVal;
};
然后$scope.sendHtml.html
就像它应该的'acacac'
一样。
这可以用另一种RegEx来解决吗?我希望我能清楚地解释我的问题。我会感激任何帮助!
干杯!
答案 0 :(得分:3)
转义点.
,括号()
和美元$
符号。
testVal = testVal.replace(/ng-class="{'selected':selection\.indexOf\(\$index\) != -1}"/g,"");
在网站上,您可以通过打开菜单参考 - 转义字符来检查应转义的所有字符。
答案 1 :(得分:1)
如果您需要删除所有ng- *指令以及生成的html注释,您可以尝试the following regex。
\sng-[a-z]*="(.*?)"|(<!--(.*?)-->)
您删除了一个空格\s
,后跟ng-
和任意数量的字符[a-z]*
,后跟双引号和内部&#34;(。*?)& #34;以及html评论<!--(.*?)-->
以及内部的内容。
可以改进,但它可以用来清理你的输入。