如何在JavaScript中获取指定字符之前的子字符串
How to grab substring before a specified character in JavaScript?
我正在尝试提取','逗号之前的所有内容。如何在JavaScript或jQuery中做到这一点?我试过了,但没用。。
1345 albany street, Bellevue WA 42344
我只想查一下街道地址。
var streetaddress= substr(addy, 0, index(addy, '.'));
const streetAddress = addy.substring(0, addy.indexOf(","));
虽然这不是关于每种方法的确切信息的最佳位置(MDN Web Docs更适合),但W3Schools.com很适合向您介绍语法。
var streetaddress = addy.split(',')[0];
试试这个:
streetaddress.substring(0, streetaddress.indexOf(','));
//split string into an array and grab the first item
var streetaddress = addy.split(',')[0];
此外,为了更好的可读性,我建议用驼色大小写(streetAddress)命名变量。
如果你喜欢它的缩写,只需使用RegExp:
var streetAddress = /[^,]*/.exec(addy)[0];
您也可以使用shift()
。
var streetaddress = addy.split(',').shift();
根据MDN Web文档:
shift()
方法从数组中移除第一个元素,并返回移除的元素。此方法会更改数组的长度。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
与David G的答案几乎相同,但没有匿名函数,如果您不想包含匿名函数的话。
s = s.substr(0, s.indexOf(',') === -1 ? s.length : s.indexOf(','));
在这种情况下,我们利用了substr
的第二个参数是一个长度,并且我们知道我们的子字符串从0开始。
最重要的答案是不是一个通用的解决方案,因为如果字符串不包含您要查找的字符,会出现不希望的行为。
如果你想在一般情况下得到正确的行为,可以使用这个方法或David G的方法,而不是的最佳答案
regex和split方法也会起作用,但对于这个特定的问题,可能会慢一些/处理过度。
var newString = string.substr(0,string.indexOf(','));
var streetaddress = addy.substr(0, addy.indexOf('.'));
(您应该通读javascript教程,特别是关于字符串函数的部分)
如果您想在不包含搜索字符的情况下原封不动地返回原始字符串,那么您可以使用匿名函数(闭包):
var streetaddress=(function(s){var i=s.indexOf(',');
return i==-1 ? s : s.substr(0,i);})(addy);
这可以变得更通用:
var streetaddress=(function(s,c){var i=s.indexOf(c);
return i==-1 ? s : s.substr(0,i);})(addy,',');
您可以使用regex,因为如果它符合要求,它将为您提供字符串。代码应该是这样的:
const address = "1345 albany street, Bellevue WA 42344";
const regex = /[1-9][0-9]* [a-zA-Z]+ [a-zA-Z]+/;
const matchedResult = address.match(regex);
console.log(matchedResult[0]); // This will give you 1345 albany street.
所以要分解代码。[1-9][0-9]*
基本上意味着第一个数字不能是零,必须是1-9
之间的数字,而下一个数字可以是0-9
中的任何数字,并且可以出现零次或多次,因为有时这个数字只有一个数字,然后它匹配一个空格。[a-zA-Z]
基本上将所有大写字母与小写字母匹配,并且必须出现一次或多次,并且重复这种情况。
如果你担心遇到没有逗号的情况,你可以这样做:
let end = addy.indexOf(",") >= 0 ? addy.indexOf(",") : addy.length;
let streetaddress = addy.substr(0, end);
没有人说它必须在一条线上。
- 如何将字符串拆分为字符,但在javascript中保留空格
- 如何显示字符串中最多 200 个字符
- 我想在Javascript中探索类似C语言的字符串的整个字符
- 如何用jquery替换字符串中可能变化的字符
- 通过跳过拆分字符在 javascript 中拆分字符串
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 字符串替换-不支持格式字符'}'
- 到UpperCase字符串Javascript中的特定字符索引
- 用类javascript包装span标记中字符串中的字符索引
- 将字符串分组为n个字符的块,并应用替换
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- Regex-从字符第N次出现到字符串末尾的匹配
- Visual Studio 2010跳转到下一个任意字符/字符串
- 估计存储在 localStorage (Javascript) 中的 10,000 个字符字符串的大小
- 字符字符串中最后一个单词的第一个字母
- 匹配任何字符字符串的正则表达式,最多为“/”Javascript
- 将特殊字符字符串到 JSON 字符串化非法令牌中
- 在javascript中计算精确的字符字符串高度