.replace()不能正常工作

时间:2015-06-04 04:37:35

标签: javascript jquery replace hide show

当select元素有某个选项时,我试图切换一个隐藏的输入元素。当我收到变量q的警报时,q没有输入但是变量put我是否因为.replace()删除了整个字符串而感到很困惑。

function hiddeninput(choice, put) {
    var q = put.replace(/./g, "").replace(/#/g, "");
    alert(put + "," + q);//alerts .other,
    if (choice === q) {
        $(put).show();
    } else {
        $(put).hide();
    }
}

任何帮助将不胜感激。过去几天,JSfiddle一直很蠢,我以前的一些工作小提琴已经停止工作了,也许这就是原因。

2 个答案:

答案 0 :(得分:0)

你是否意识到.是否匹配任何角色?

您需要使用\转义它,以便它只匹配.而不是任何字符。

var q = put.replace(/\./g, "").replace(/#/g, "");

而不是做两次替换,你可以做一次

var q = put.replace(/[.#]/g,"");

答案 1 :(得分:0)

在正则表达式中。“将匹配任何角色。你有:put.replace(/./g, "");。这意味着你要用任何东西替换任何角色的每个匹配,这将不会产生任何结果。

如果要匹配点,则需要使用反斜杠转义特殊字符:put.replace(/\./g, "");

我不确定这是否能完全解决你的问题,但对我来说这似乎是无意识的事情。