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