我有这个输入:
<input class='name'></input>
假设我们在输入中键入以下内容:'John Doe Doo'。
如果我使用 jQuery $('.name').val().split(' ')
并且输入末尾包含空格,jQuery 会将其视为文本块。
另一个问题是我不知道如何获取第一个文本块,然后获取其他两个或更多(并忽略末尾的空格)。
我的最终结果应该是:
var name = Johh
var lname = Doe Doe
有什么想法吗?我尝试过一些$.trim
但没有成功。
使用 split
, slice
和 join
:
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);