javascript替换点(非句点)字符

时间:2015-06-22 20:25:15

标签: javascript regex replace

我有一些正在呈现的文本有一个内联列表,其中的项目符号由"•"所有人都在一行文字中。

很难看,但我不想改变源数据。所以我想我只是做一个快速的javascript替换,在每个点之前插入断点,以便更容易阅读。

这就是我的所作所为:

   var formattedMessage = message.replace(/•/g, "<br />•");

我认为这会有效,但当我尝试渲染formattedMessage时,它不包含中断。

有关为何会出现这种情况的任何想法?我认为这可能是因为它认为替换表达式中的尖括号是正则表达式,但我看到的string.replace()函数的所有示例仅显示接受正则表达式的第一部分,以及2页进入谷歌搜索不会提示相互矛盾的信息,所以我必须假设它,因为它是一个奇怪的角色。

你如何取代它?

附加信息 根据请求,这是我格式化数据的方式(它在javascript模式对话框中)

function modalConfirm(message, title, callback) {
    var formattedMessage = message.replace(/�/g, "<br />�");
    $("#extra-info").modal({

        closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
        position: ["20%"],
        overlayId: "confirm-overlay",
        containerId: "confirm-container",
        onShow: function (dialog) {
            var modal = this;
            $("#extra-info .message").html(formattedMessage);
            $("#extra-info .title").html(title || "Additional Info");
            $("#extra-info .modal-ok", dialog.data[0]).click(
                function () {
                    if ($.isFunction(callback)) {
                        callback.apply(true);
                    }
                    modal.close();
                });
        }
    });

呈现的HTML如下:

<div id="confirm-container" class="simplemodal-container" style="position: fixed; z-index: 1002; height: 180px; width: 260px; left: 28px; top: 20%;"><a href="#" title="Close" class="modal-close simplemodal-close">x</a><div tabindex="-1" class="simplemodal-wrap" style="height: 100%; outline: 0px; width: 100%; overflow: visible;"><div id="extra-info" class="simplemodal-data" style="">
            <div class="header title">Additional Info</div>
            <div class="message">Examples of 1 serving are: • 1 medium apple or orange (the size of a tennis ball) • ½ cup of berries or chopped fruit • 1 cup of leafy raw vegetables • ½ cup of cooked vegetables • 1 medium potato (the size of a computer mouse) • 6 ounces of pure fruit or vegetable juice</div>
            <div class="buttons">
                <div class="modal-ok simplemodal-close">OK</div>
            </div>
        </div></div></div>

2 个答案:

答案 0 :(得分:7)

尝试使用unicode字符代码message.replace(/\u2022/, "<br />\u2022"); ,而不是:

library(raster)
g <- getData('GADM', level=1, country='CHE')

# create a data.frame of cantons and language
# set them to German (a common one)
lang <- data.frame(g$NAME_1, lang='German')
lang

# now fix the entries that need to be French or Italian
# and merge back to g (a SpatialPolygonsDataFrame) 
g <- merge(g, lang, by='NAME_1')

spplot(g, 'lang')

答案 1 :(得分:0)

我刚试过这个问题,我通过在你的角色周围加上引号来解决这个问题。

<p id="demo">Look it's a • character</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction() {
    var str = document.getElementById("demo").innerHTML; 
    var res = str.replace("•", "helpful");
document.getElementById("demo").innerHTML = res;
}
</script>