var shortLocString = locationString;
console.log("Index of dash in '" + shortLocString + "': " + shortLocString.indexOf('-'));
每次都打印出来:
Index of dash in '325–333 Avenue C, New York, NY': -1
为什么我觉得这是一个愚蠢的事情,我在漫长的一天结束时失踪了?
感谢您的帮助!
麦克
答案 0 :(得分:5)
你的字符串中有某种非连字符。我不确定是哪一个;有一堆看起来像那样。
答案 1 :(得分:2)
有很多类似连字符的字符。
如果您输入"-"
,它可能与您正在测试的字符串中放置的字符不同。
如果您有要测试的字符串(即:那个),一个简单的解决方案可能是复制字符串中存在的短划线,将其粘贴到.indexOf
中然后重试。
对于更强大的解决方案,获取所有连字符的Unicodes(包括实际的减号),如果您要处理的电话号码或序列号必须以相同的方式进行格式化,每次,然后手动将RegEx替换为任何破折号,以用于检查的格式。
此外,准备好使用MS Word或其他富文本编辑器来解决问题
他们会在心跳中交换您的"
以获得花哨的引号,然后您的所有字符串都会被破坏。他们也可能使用不同的字符映射来表示重音等等。
答案 2 :(得分:1)
这是因为有多种类型的破折号 - 你正在检查连字符,但地址包含一个短划线。
console.log("Index of dash in '" + shortLocString + "': " + shortLocString.indexOf('\u2013'));
应该打印
Index of dash in '325–333 Avenue C, New York, NY': 3
如果您的地址可能包含em和/或en破折号,则您需要检查字符\ u2013和\ u2014