jQuery: 替换 attr 字符串中的 \u002D?

jQuery: Replace \u002D in string from attr?

从这个div我想提取URL里面的"ng-init"

<div ng-controller="CloudcastHeaderCtrl" ng-init="juno.replaceTracklist=true;juno.guid='DBFFF66E\u002D4111\u002D446B\u002D8471\u002D07DF1489F272';juno.chartUrl='http://www.junodownload.com/charts/mixcloud/RYCpodcast/ryc\u002Dpodcast\u002D108\u002Dpearl/254201612'">

但我似乎无法将 \u002D 替换为 -

var ngInit = $('div[ng-controller="CloudcastHeaderCtrl"]').attr("ng-init"),
    url = ngInit.replace(/.+juno\.chartUrl='(.+)'/, ""),
    urlR = url.replace("\u002D", "-");

$("body").append( url + "<br />" );
$("body").append( urlR );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div ng-controller="CloudcastHeaderCtrl" ng-init="juno.replaceTracklist=true;juno.guid='DBFFF66E\u002D4111\u002D446B\u002D8471\u002D07DF1489F272';juno.chartUrl='http://www.junodownload.com/charts/mixcloud/RYCpodcast/ryc\u002Dpodcast\u002D108\u002Dpearl/254201612'">

测试:http://jsfiddle.net/7o7kL5pp/

反斜杠是转义字符。由于目标字符串包含文字反斜杠,您需要对其进行转义。

var ngInit = $('div[ng-controller="CloudcastHeaderCtrl"]').attr("ng-init"),
    url = ngInit.replace(/.+juno\.chartUrl='(.+)'/, ""),
    urlR = url.replace("\u002D", "-");

$("body").append( url + "<br />" );
$("body").append( urlR );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div ng-controller="CloudcastHeaderCtrl" ng-init="juno.replaceTracklist=true;juno.guid='DBFFF66E\u002D4111\u002D446B\u002D8471\u002D07DF1489F272';juno.chartUrl='http://www.junodownload.com/charts/mixcloud/RYCpodcast/ryc\u002Dpodcast\u002D108\u002Dpearl/254201612'">