使用javascript进行字符串操作
我正在使用javascript进行一些字符串操作。我有一个senario,需要在字符串中搜索并删除某些单词 这是我的塞纳里奥: 当我单击“单击我”时,它应该在字符串变量的输入中查找单词, 如果找到匹配项,则应将该词从输入中删除 这是我的另一个senario,当从输入中删除单词时,它应该删除:和匹配单词前面的整数值和逗号(如果可用) 在我的示例中,文本框中的输入是1:first user,2:second user 我需要输出为2:seconduser 我怎样才能做到这一点使用javascript进行字符串操作,javascript,jquery,Javascript,Jquery,我正在使用javascript进行一些字符串操作。我有一个senario,需要在字符串中搜索并删除某些单词 这是我的塞纳里奥: 当我单击“单击我”时,它应该在字符串变量的输入中查找单词, 如果找到匹配项,则应将该词从输入中删除 这是我的另一个senario,当从输入中删除单词时,它应该删除:和匹配单词前面的整数值和逗号(如果可用) 在我的示例中,文本框中的输入是1:first user,2:second user 我需要输出为2:seconduser 我怎样才能做到这一点 <input
<input id='textinput' type='text' value='1:first user,2:second user'></input>
<div class='click'>Click me</div>
我创造了一把小提琴
编辑
这里我的变量字符串只包含用户名,我不能用用户名附加id,例如1:first user,因此字符串变量中不会有精确的匹配项。在JavaScript代码中,
string
是一个变量。您需要启动RegExp
类来生成模式:
另外,请不要使用变量名,如string
。它是全局对象的名称
var s = 'first user';
var x = $( '#textinput' ).val().replace(new RegExp(s, 'g'), '');
// use the new variable x as you wish
在JavaScript代码中,
string
是一个变量。您需要启动RegExp
类来生成模式:
另外,请不要使用变量名,如string
。它是全局对象的名称
var s = 'first user';
var x = $( '#textinput' ).val().replace(new RegExp(s, 'g'), '');
// use the new variable x as you wish
您应该使用,您需要使用字符串变量初始化它
使用
编辑
这里我不能在变量中使用1:first user 您应该使用,您需要使用字符串变量初始化它 使用 编辑
这里我不能在变量中使用1:first user
您可以使用如下正则表达式:
var text = '1:first user,2:second user,3:third user';
var s = 'first user';
var re = new RegExp('^\\d+:' + s + ',?|,\\d+:' + s + '\\b');
text.replace(re, '') // '2:second user,3:third user'
我确信还有一个较短的表达式。您可以使用如下正则表达式:
var text = '1:first user,2:second user,3:third user';
var s = 'first user';
var re = new RegExp('^\\d+:' + s + ',?|,\\d+:' + s + '\\b');
text.replace(re, '') // '2:second user,3:third user'
不过我肯定还有一个较短的。我已经删除了起始数字、下划线和结尾逗号
$(document).ready(function () {
$(".click").click(function () {
var string = 'first user';
var re = new RegExp('\\d:*'+string+',*',"g");
var text = $('#textinput').val().replace(re, '');;
$('#textinput').val(text);
});
});
检查演示
我删除了起始数字、下划线和结尾逗号
$(document).ready(function () {
$(".click").click(function () {
var string = 'first user';
var re = new RegExp('\\d:*'+string+',*',"g");
var text = $('#textinput').val().replace(re, '');;
$('#textinput').val(text);
});
});
检查演示
我已经更新了您的
首先,我将字符串拆分为数组
var inputArr = ($('#textinput').val()).split(',');
因此,我可以使用for
循环检查每组单词
for (i = 0; i < inputArr.length; i++) {
if (inputArr[i].indexOf(string) == -1) {
newStr = newStr + inputArr[i] + ',';
}
}
我已经更新了你的
首先,我将字符串拆分为数组
var inputArr = ($('#textinput').val()).split(',');
因此,我可以使用for
循环检查每组单词
for (i = 0; i < inputArr.length; i++) {
if (inputArr[i].indexOf(string) == -1) {
newStr = newStr + inputArr[i] + ',';
}
}
你能展示一些输入和预期输出的例子吗?你能展示一些输入和预期输出的例子吗?我认为这应该是正确的答案,因为只有在这个解决方案中,新的值被设置为textfield。这个代码将输出1:,2:第二个用户。但我需要删除1:,also@user3791078-
var string='1:first user',
这里我不能在变量中使用1:first user这里我的变量字符串只包含用户名,我不能用用户名附加id,例如1:first user,所以字符串变量中不会有精确匹配。我想这应该是正确的答案,因为只有在此解决方案中,新值才设置为textfield。此代码将输出1:,2:第二个用户。但我需要删除1:,also@user3791078-var string='1:first user',
这里我不能在变量中使用1:first user这里我的变量字符串只包含用户名,我不能用用户名附加id,例如1:first user,因此字符串变量中不会有精确的匹配项。这将留下一个类似'1:,2:second user'
,但我认为OP需要:'2:second user'
。这将留下一个字符串,如'1:,2:second user'
,但我认为OP需要:'2:second user'
。