用Javascript正则表达式替换“;拆分”;
Javascript regex to replace "split"
我想使用Javascript Regex而不是split
。
下面是示例字符串:
var str = "123:foo";
当前方法调用:
str.split(":")[1]
这将返回"foo"
,但当给定一个没有:
的坏字符串时,会引发一个Error。
因此,这将引发一个错误:
var str = "fooblah";
在"fooblah"
的情况下,我只想返回一个空字符串。
这应该很简单,但去寻找它,却找不出来。提前谢谢。
删除冒号(或字符串末尾,如果没有冒号)之前的部分:
"123:foo".replace(/.*?(:|$)/, '') // "foo"
"foobar" .replace(/.*?(:|$)/, '') // ""
此regexp的工作原理:
.* Grab everything
? non-greedily
( until we come to
: a colon
| or
$ the end of the string
)
正则表达式对您没有帮助。您的错误可能是由于以后尝试使用undefined
而导致的。相反,请先检查分割的长度。
var arr = str.split(':');
if (arr.length < 2) {
// Do something to handle a bad string
} else {
var match = arr[1];
...
}
以下是我一直使用的,有不同的变体;这只是它的一个简单版本:
function split(str, d) {
var op = "";
if(str.indexOf(d) > 0) {
op = str.split(d);
}
return(op);
}
相当简单,返回一个数组或一个空字符串。
var str1 = "123:foo", str2 = "fooblah";
var res = function (s) {
return /:/.test(s) && s.replace(/.*(?=:):/, "") || ""
};
console.log(res(str1), res(str2))
下面是一个使用单个正则表达式的解决方案,其中包含捕获组中所需的部分:
^[^:]*:([^:]+)
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 我如何找到一个句子中的所有空格并替换忽略它们
- 如何用更合适的内容替换document.write
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 拆分单词jquery
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 用空格替换下划线PHP
- str.split(someString).join(someOtherString)是否等效于替换
- 使用javascript的图像替换循环
- 替换javascript中拆分后的值
- 正在按{0}、{1}拆分字符串..{n} 并替换为空字符串
- jQuery - 合并 ajax 请求,因为它们被拆分并替换数据
- JavaScript函数中的拆分和替换
- 用Javascript正则表达式替换“;拆分”;
- Javascript拆分,替换行为怪异
- 将数组拆分为子数组并替换字符
- Javascript:拆分字符串并替换值
- Javascript替换:不要在连字符(正则表达式)上拆分单词
- 拆分并替换url