如何在同一行

时间:2018-01-25 10:11:32

标签: jquery html regex

我正在建立一个键盘功能,就像你在手机上看到的那样。到目前为止,我有一个工作键盘,将字母附加到div p我希望它去。

这是我没有正则表达式的原始键盘:https://jsfiddle.net/yxdehb5p/

当我使用正则表达式时,所有字母都变为大写字母:请参阅:https://jsfiddle.net/L9wL6f66/

正则表达式表现良好,因为问题发生在每次点击后,下一个字母在开发人员工具中遇到一个新行:

这就是开发人员工具内部的样子:

<div id="result">
    <p>
       "Q"  
       "W"
       "E"
       "."
       "R"
       "T"
       "Y"
   </p>
</div>

虽然这是我想要的结果:

<div id="result">
    <p>
       "Qwe. Rty"  
   </p>
</div>

导致此行为的原因是什么?

修改

也许我不清楚。我不希望它在我的console.log或开发工具中看起来不错但在屏幕上。但我知道这可能是由于我的正则表达式。为什么我的正则表达式一直都是大写的。顺便说一句,我对理解正则表达式非常不满意。

1 个答案:

答案 0 :(得分:-1)

非常简单的解决方案,下面是更新的代码。

var c = 0;
    $(".ui-keyboard-1 button").add(".ui-keyboard-2 button").add(".ui-keyboard-3 button").click(function () {
        c++;

        if ($(this).hasClass('ui-keyboard-noresult')) {
            return;
        }
        $('.ui-keyboard-space').click(function () {
            $('.result p:last').append(' ');
        });

        $(this).val('span');
        $result = $(this).find('span').text().toLowerCase();
        $re = /(^|\. *)([a-z])/g;
        $result = $result.replace($re, function (x) {
            return x.toUpperCase();
        });



        $(".result p:last").append($result);

                //debug
        if(c > 1){
            console.clear();
        }
        console.log($('.result p:last').html());
    });

由于