gpt4 book ai didi

javascript - 如果字符串中只有一个单词或没有空格,则使用 jQuery/Javascript 分割字符串时出现问题

转载 作者:行者123 更新时间:2023-11-28 20:31:18 25 4
gpt4 key购买 nike

我使用.split通常具有名字和姓氏的字符串中仅提取名字。只要字符串中存在空格(即名字和姓氏),这种方法就很好用,但是当只有名字时,整个字符串就会加倍。

示例:

我有一个包含名称“John Smith”的字符串。当我使用下面的代码时,它返回“John”。伟大的!但如果字符串只是“John”并且使用了代码,则返回“JohnJohn”。不!

使用这一行,js 将返回 'John'

<p>Name: <span class="vName">John Smith</span></p> 

使用这一行,js 将返回 'JohnJohn'

<p>Name: <span class="vName">John</span></p>

脚本:

<script>
var designerName = $('.vName').text();
designerName = designerName.split(" ")[0];
</script>

这是在 jsfiddle 上,使用相同的 jQuery 版本 (v1.8.2) 可以正常工作: http://jsfiddle.net/5yrYj/1

运行 Chrome 版本 26.0.1410.64 m。我不明白为什么它在我的脚本中不起作用。

完整功能如下:

function saveDesign(){
var shaftRender = $('#shaft-image-md').attr('class');
var gripRender = $('#grip-image-md').attr('class');
var labelRender = $('#label-image-md').attr('class');

gripRender = gripRender.toLowerCase().replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
labelRender = labelRender.toLowerCase().replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});

var designerShaft = shaftRender+gripRender+labelRender;
var designerName = $('.vName').text();

//Grab only first name
designerName = designerName.split(" ")[0];
//if((/ /).test(designerName)){ designerName = designerName.split(" ")[0]; }
//designerName = (/ /).test(designerName) ? designerName.split(" ")[0]
//: designerName;

$.post("saveDesign.php",
{
name: designerName,
shaft: designerShaft,
});

//Debug
alert(designerName); //This displays "JohnJohn"
}

无论我使用三个.split行中的哪一行,如果原始的designerName字符串没有姓氏=空格,我仍然会得到双名。此时警报也会显示“JohnJohn”。

那么,如何仅在字符串中有空格时调用 .split 代码?或者还有其他更适合我的目的的解决方案吗?任何帮助将非常感激。

谢谢。

已解决: html 中存在额外的 .vName 实例。已删除,现在可以正常工作。感谢弗朗西斯科·阿方索提出这就是问题所在。

最佳答案

您正在使用 class = vName 的所有元素的文本值。该类有两个元素,因此您正在使用它们值的串联。所以:“约翰·约翰·史密斯”还有一个错误。

关于javascript - 如果字符串中只有一个单词或没有空格,则使用 jQuery/Javascript 分割字符串时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16312894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com