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. @AvinashRaj char 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 中查找/替换) - 匹配非字母数字字符但忽略 - 和 +

oracle怎样查找某个字符所在字符串第n次出现的位置

在字符串列表中查找字符串中第一个字母的位置(Python 3)

JavaScript常用的数据类型的处理方式

查找某个位置不变的字符串的所有排列

在Javascript中如何修改字符串中的某个字符?