Javascript从某个位置查找第一个非字母字符的索引
Posted
技术标签:
【中文标题】Javascript从某个位置查找第一个非字母字符的索引【英文标题】:Javascript find index of first non alphabetic char from certain position 【发布时间】:2015-08-31 20:16:48 【问题描述】:我想从某个位置找到 indexOF 第一个非 aplhabetic char
Example
abc4sss5gggg10
我想获得 5 的位置,但要指定我开始搜索的位置
【问题讨论】:
第一个非 alpha char it 4. @AvinashRajchar from a certain postion on
Return positions of a regex match() in javascript? 的可能重复项
您真的应该向我们展示您的尝试。
另一个与解决方案非常相似的问题。 ***.com/questions/273789/…
【参考方案1】:
结合使用正则表达式和子字符串函数:
var str = "abc4sss5gggg10";
var indexToSearchFrom = 6;
var index = str.substring(indexToSearchFrom).search(/[^A-Za-z]/);
【讨论】:
[^A-Z]/i
也可以使用。少打字【参考方案2】:
获取第 4 个位置之后的第一个非 alpha 字符的索引。
> 'abc4sss5gggg10'.replace(/^.4/, "").match(/[^a-z]/i)
[ '5',
index: 3,
input: 'sss5gggg10' ]
> 'abc4sss5gggg10'.replace(/^.4/, "").match(/[^a-z]/i)['index']
3
【讨论】:
【参考方案3】:我认为这是你需要的:
我修改了 Mathijs Segers 的代码,使其看起来像这样:
function StartSearching(str, startFrom)
for (var i = startFrom; i<str.length;i++)
if (!isNaN(str[i]))
return i;
【讨论】:
【参考方案4】:首先考虑这篇文章Return positions of a regex match() in Javascript?
然后知道要找到你必须使用的第一个数值
var n = 2; // my starting position
var match = /[0-9]/.exec("abc4sss5gggg10".substring(n));
if (match)
alert("match found at " + match.index);
使用substring
删除前n个字符
【讨论】:
是,但指定开始搜索的位置 如何查找所有非字母字符。这只会找到数字。【参考方案5】:你的第一个想法可能是正则表达式,虽然这些很重,但我可能会去类似
getFirstNonAlpha(str)
for (var i = 0; i<str.length;i++)
if (!isNaN(str[i])
return i;
return false;
isNaN 表示 isnotanumber,所以如果它匹配一个数字,它将返回 false,您可以返回索引。
如果这甚至是一个问题,请检查您需要哪个以及哪个速度更快。此外,此功能不会帮助您!@#$%^&*()_ 等。
【讨论】:
【参考方案6】:var str = "abc4sss5gggg10";
function searchIndex(index, strng)
var arr = strng.split("");
for (var i = index; i < arr.length; i++)
if (!isNaN(arr[i]))
return i;
return -1;
alert(searchIndex(4, str));
DEMO
【讨论】:
以上是关于Javascript从某个位置查找第一个非字母字符的索引的主要内容,如果未能解决你的问题,请参考以下文章
RegEx(在 JavaScript 中查找/替换) - 匹配非字母数字字符但忽略 - 和 +