2012-03-07 53 views
0

在这previous question,我问如何删除parenteshes和其中的文字。得到这个:删除输入字段中的括号,它们之间的文本以及它们之前的空格?

$(this).val($(this).val().replace(/\(.+\)/, '')); 

所以这样的:food (454)变成这样:food

也能正常工作,但现在我想不仅去掉括号和它们之间的文本,但也括号之前删除空间。

在上面的例子中,我谈论的空间将是信d(

如何修改代码,以便它能够做到这之间的空间?

+0

向表达式添加空格。 – 2012-03-07 10:56:08

+0

@Lightness轨道上的比赛Duh!刚刚发现了这一点。 – alexchenco 2012-03-07 11:08:52

回答

2

根本不需要jquery!

this.value = this.value.replace(/\s+\(.+?\)/g, ''); 

Live demo

感谢@AnthonyGrist!

+0

谢谢!对不起,我忘了提及这种情况:'tag1 tag1(23)'也是。现在,您的代码执行此操作:'tag1',我在寻找这个:'tag1 tag1'。 – alexchenco 2012-03-07 11:06:30

+2

您需要使用'\\'(反斜杠)在正则表达式中跳出缺口。 – 2012-03-07 11:12:31

+0

@AnthonyGrist。你是对的!但那不起作用,为什么?见[fiddle](http://jsfiddle.net/8VS9B/5/) – gdoron 2012-03-07 14:12:41

0
$.trim($(this).val($(this).val().replace(/\(.+\)/, ''))); 
+0

奇怪,出于某种原因,我仍然在那个输入字段中获得空间。 – alexchenco 2012-03-07 11:01:11

+1

为什么你使用jquery来获得价值? 'this.value'会给你带来价值! – gdoron 2012-03-07 11:02:32

+1

@ubercooluk如果您要在答案中添加其他代码,请编辑答案,而不是将格式不正确的代码放入评论中。 – 2012-03-07 11:13:42

相关问题