我有下一个问题。我需要删除字符串中第一个点之前的一部分。我尝试使用split函数:
split
var str = "P001.M003.PO888393"; str = str.split(".").pop();
但是str的结果是"PO888393"。我只需要删除第一个点之前的部分。我想要下一个结果:"M003.PO888393"。有人知道我该怎么做?谢谢!
"PO888393"
"M003.PO888393"
yxyvkwin1#
我能想到的一个解决方案是找到第一个周期的索引,然后使用substring方法从index+1中提取字符串的其余部分。
index+1
let str = "P001.M003.PO888393"; str = str.substring(str.indexOf('.')+1); console.log(str)
mwg9r5ms2#
您可以使用regular expression和.replace()来匹配从字符串开始到第一个点.的所有内容,然后将其替换为空字符串。
.replace()
.
var str = "P001.M003.PO888393"; var res = str.replace(/^[^\.]*\./, ''); console.log(res);
Regex解释:
[^\.]*
*
\.
使用这些组合匹配,字符串中的第一个字符包括第一个.,并用空字符串''替换它。
''
vfwfrxfs3#
您可以使用split和splice函数删除第一个条目,并使用join函数再次合并其他两个字符串,如下所示:
splice
join
str = str.split('.').splice(1).join('.');
结果是
M003.PO888393
var str = "P001.M003.PO888393"; str = str.split('.').splice(1).join('.'); console.log(str);
0yycz8jy4#
使用正则表达式/^\w+\./g调用字符串replace可以做到这一点:
/^\w+\./g
replace
let re = /^\w+\./g let result = "P001.M003.PO888393".replace(re,'') console.log(result)
其中:
\w
+
1hdlvixo5#
有很多方法可以做到这一点:
slice
let str = "P001.M003.PO888393"; str = str.slice(str.indexOf('.') + 1);
substring
let str = "P001.M003.PO888393"; str = str.substring(str.indexOf('.') + 1);
substr
let str = "P001.M003.PO888393"; str = str.substr(str.indexOf('.') + 1);
smdnsysy6#
在RegExp上使用String.prototype.replace()和非贪婪量词*?:
RegExp
String.prototype.replace()
*?
> 'P001.M003.PO888393'.replace(/.*?\./, '') 'M003.PO888393'
6条答案
按热度按时间yxyvkwin1#
我能想到的一个解决方案是找到第一个周期的索引,然后使用substring方法从
index+1
中提取字符串的其余部分。mwg9r5ms2#
您可以使用regular expression和
.replace()
来匹配从字符串开始到第一个点.
的所有内容,然后将其替换为空字符串。Regex解释:
[^\.]*
匹配零个或多个(*
)不是.
字符的字符。\.
匹配.
字符使用这些组合匹配,字符串中的第一个字符包括第一个
.
,并用空字符串''
替换它。vfwfrxfs3#
您可以使用
split
和splice
函数删除第一个条目,并使用join
函数再次合并其他两个字符串,如下所示:结果是
0yycz8jy4#
使用正则表达式
/^\w+\./g
调用字符串replace
可以做到这一点:其中:
\w
是单词字符+
表示一次或多次\.
字面意思.
1hdlvixo5#
有很多方法可以做到这一点:
slice
函数:substring
函数substr
函数smdnsysy6#
在
RegExp
上使用String.prototype.replace()
和非贪婪量词*?
: