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

  • 本文关键字:空格 val 获取 jquery
  • 更新时间 :
  • 英文 :


我有这个输入:

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

假设我们在输入中键入以下内容:'John Doe Doo'。

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

另一个问题是我不知道如何获取第一个文本块,然后获取其他两个或更多(并忽略末尾的空格)。

我的最终结果应该是:

var name = Johh
var lname = Doe Doe 

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

使用 splitslicejoin

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

这是一个交互式演示。

为了避免结尾和开头的空格,您可以使用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]; 

小提琴演示

您可以使用下面给出的此方法从开头和结尾删除空格。假设您的字符串是

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

然后像这样按空格拆分此字符串

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

使用 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"

小提琴或它没有发生

 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);

最新更新