javascript - 在文本框中键入文本时替换文本框中的部分文本

标签 javascript jquery html angularjs

文本框中的文字格式是这样的:

login -u username -p password

在键入此文本时,我想用等于其长度的“*”数量替换“密码”。所以如果我输入:

'login -u abc@abc.com -p abc' 在文本框中应该显示如下:

login -u abc@abc.com -p ***

而且我还需要存储被替换的实际密码。

有什么办法吗?提前谢谢你

最佳答案

您应该使用正则表达式解析输入值,即

<input type="text" id="inputText" />
<input type="hidden" id="actualPassword" /> <!-- Another element to store actual password -->
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
// Function to repeat string n times */
var StringUtilities = {
    repeat: function(str, times) { 
       return (new Array(times + 1)).join(str);
    }
};
$(function(){
    $('#inputText').keyup(function(){ 
        var test = /(login[\s]+\-u[\s]+[a-zA-Z0-9@\.\s]+\-p[\s]+)(.*)/i.exec( $(this).val() ); //'login -u user123 -p password123'      
        if(test !== null)
        { 
            if( $('#actualPassword').val().length < $.trim(test[2]).length )
                $('#actualPassword').val( $('#actualPassword').val() + test[2].slice(-1) );
            else
                $('#actualPassword').val($('#actualPassword').val().slice(0, test[2].length));

          $(this).val( test[1] + StringUtilities.repeat( '*', test[2].length) );     
        }
    });
});
</script>

JS fiddle : http://jsfiddle.net/nmx04h1o/3/

关于javascript - 在文本框中键入文本时替换文本框中的部分文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26798133/

相关文章:

html - 如何在不创建不必要的空白区域的情况下插入弹出模式?

javascript - Jquery URL重新加载

javascript - 如何在不刷新页面的情况下发送表单中的输入/选择字段(PHP/AJAX/JS)

javascript - 为什么 pop 比 shift 快?

jquery - 确定 html 表中是否存在精确行

asp.net-mvc - asp.net mvc Controller 操作和 jquery ajax 问题

Javascript:将值返回给回调函数之外的变量

当时间达到 5 分钟时,JavaScript 重定向到另一个页面

javascript - 从 StringBuilder(vb.net) 调用函数

css - 一个 div 可以有一个背景图像,但重复不同的图像吗?