Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中将字符转换为星号_Javascript_Jquery - Fatal编程技术网

在Javascript中将字符转换为星号

在Javascript中将字符转换为星号,javascript,jquery,Javascript,Jquery,我想写一个函数,将第一个单词后面的所有字符都转换成星号 假设我有我的第一个单词MYSECONDWORD,我希望它在Keyup上转换为星号,但只对第二个单词,将其呈现为这样 我的第一个字*** 我一直在使用下面的方法,但它会转换每个字母,这可能吗 $(this).val($(this).val().replace(/[^\s]/g, "*")); 签入您应该尝试此代码 var array = $(this).val().split(" "); var newValue = ""; for(

我想写一个函数,将第一个单词后面的所有字符都转换成星号

假设我有我的第一个单词MYSECONDWORD,我希望它在Keyup上转换为星号,但只对第二个单词,将其呈现为这样

我的第一个字***

我一直在使用下面的方法,但它会转换每个字母,这可能吗

$(this).val($(this).val().replace(/[^\s]/g, "*"));


签入

您应该尝试此代码

var array =  $(this).val().split(" ");
var newValue = "";
for(var i=0; i<array.length; i++) {
  if ( i==0){
    newValue = array[i];
    continue;
  } else{
    newValue+= array[i].replace(/[^\s]/g, "*");
  }
}

$(this).val(newValue);
var数组=$(this.val().split(“”);
var newValue=“”;

对于(var i=0;i我不确定是否要使用单个正则表达式,但您可以这样做:

$("input").keyup(function() {
    var i = this.value.indexOf(" ");
    if (i > -1) {
        this.value = this.value.substr(0, i) 
                   + this.value.substr(i).replace(/[\S]/g, "*");
    }
});

演示:

this.value=this.value.replace(…);
这里不需要jQuery。你是说“TEST1 TEST2 TEST3”会变成“TEST1********”?请在此处发布您的代码;Stackoverflow的要点是独立的,而不是依赖外部站点来保持功能性/可访问性。使用JS Fiddle进行演示,而不是作为存储库。我想知道是谁对此进行了投票。这只是OP代码的副本,不起作用。标记为非答案。您不必显示代码的工作方式在这里,您应该显示在答案中起作用的代码,并链接到其他地方显示代码实际起作用的演示。如果您不介意关于如何改进这一点的一些建议:您可以将newValue初始化为数组[0]然后从i=1开始运行循环,以避免if/else。如果你已经在空格上拆分了字符串,你的正则表达式可以是
//g
,不是吗?我想你也需要将一些空格连接回输出字符串中。这里不必使用
continue
。@linuscl-我的答案包括了一个演示小提琴,仍然可以对我来说很好(甚至在我的手机上)。你是说小提琴对你不起作用,还是说你在自己的项目中使用了代码,但它在那里不起作用?(如果是后者,你是否包含了jQuery?你是否将代码包装在文档处理程序中?哪个浏览器?)JSFIDLE在我的浏览器中不工作。请看屏幕截图:我误解了提问者的意思,对不起:(
$("input").keyup(function() {
    var i = this.value.indexOf(" ");
    if (i > -1) {
        this.value = this.value.substr(0, i) 
                   + this.value.substr(i).replace(/[\S]/g, "*");
    }
});