从输入中获取val并忽略空格

时间:2014-01-16 17:39:38

标签: jquery

我有这个输入:

<input class='name'></input>

假设我们输入的内容为:输入中的'John Doe Doo'。

如果我使用jQuery $('.name').val().split(' ')并且输入末尾包含空格,jQuery会将其视为一个文本块。

另一个问题是我不知道如何获得第一个文本块然后另外两个或更多(并忽略最后的空格)。

我的最终结果应该是:

var name = Johh
var lname = Doe Doe 

有什么想法吗?我尝试了$.trim但没有成功。

5 个答案:

答案 0 :(得分:2)

使用splitslicejoin

var split = $( '.name' ).val().split( ' ' );

var name  = split[ 0 ];
var lname = split.slice( 1 ).join( ' ' );

Here's an interactive demo

答案 1 :(得分:1)

为了避免结尾处的空白区域,您可以使用trim()

var data=$('.name').val().trim();

分割它并获取fname和lname变量

var data=$('.name').val().trim();
var split=data.split(' ');
var fname=split[0];
var lname=split[1]+' '+split[2]; 

FIDDLE DEMO

答案 2 :(得分:1)

使用split,然后重新组合数组:

var temp = $('.name').val().trim().split(' ');
var name = (temp.length ? temp[0] : '');
var lname = '';
if(temp.length>1) {
    temp = temp.slice(1); // everything from index 1 onwards
    lname = temp.join(' '); // rebuild the rest of the data.
}

结果:

name == "John"
lname == "Doh Doe"

Fiddle or it didn't happen

答案 3 :(得分:1)

您可以使用下面给出的方法从开始和结束中删除空格。 假设你的字符串是

var testString= " Vishal Singh Gehlot ";
testString= testString.replace(/\s+$/, '');

然后像这样用空格分割这个字符串

var NewString = testString.split(' ');
var  name = NewString[0]; 
var lname = NewString[1]+" "+NewString[2];

答案 4 :(得分:1)

 var temp = $('.name').val().trim();
 var firstSpace = temp.indexOf(' ');
 // it will be the index of first space.

 var firstName = temp.substring(0,firstSpace );
 var lastName = temp.substring(firstSpace +1 ,temp.length);