js正则表达式怎么取出个字符串中的所有数字?

js正则表达式怎么取出个字符串中的所有数字?,第1张

对于字符s,利用正则匹配 :var num = sreplace(/[^0-9]/ig, "")。

js正则表达式语法:

正则表达式有两种形式,一种是普通方式,一种是构造函数方式。

普通方式:var reg=/表达式/附加参数
表达式:一个字符串,代表了某种规则,其中可以使用某些特殊字符,来代表特殊的规则,后面会详细说明。
附加参数:用来扩展表达式的含义,目前主要有三个参数:
g:代表可以进行全局匹配。
i:代表不区分大小写匹配。
m:代表可以进行多行匹配。

验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&',;=$\"等字符:"[^%&',;=$\x22]+"。
只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
验证Email地址:"^\w+([-+]\w+)@\w+([-]\w+)\\w+([-]\w+)$"。
验证InternetURL:"^>

实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test 
实现的机制:通过replace的回调函数获取。

可以通过下面的代码获取匹配部分

var str = "abcdefgname='test'sddfhskshjsfsjdfps";

var reg = /name='((\w|-|\s)+)/ig;

strreplace(reg, function() { 
consolelog(argumentslength); //5 
consolelog(arguments[1]);//test 
});

字符串 stringObject 的 replace() 方法执行的是查找并替换的 *** 作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

js有两种方法可以截取字符串

substr(start [, length ])和substring(start, end)

一: substr(start [, length ]) 方法

1 说明:

它的作用是返回一个从指定位置开始的指定长度的子字符串。

2 参数:

start
        必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
        length
        可选项。在返回的子字符串中应包括的字符个数。
        如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到最后。

3 示例:

    var s = "The rain in Spain falls mainly in the plain";
    var ss = ssubstr(12, 5); // 获取子字符串, 从下表12开始, 截取5个字符
    consolelog(ss);          // 控制台输出 "Spain"。

二: substring(start, end)方法

说明:

它返回位于 String 对象中指定位置的子字符串, 即从下标start到下标end(不包含)的字符串, 与substr不同的是第二个参数 这个函数相当于java中的substring函数

2  参数:

start
        指明子字符串的起始位置,该索引从 0 开始起算。
        end
        指明子字符串的结束位置,该索引从 0 开始起算。

substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点。例如, strvarsubstring(0, 3) 和 strvarsubstring(3, 0) 将返回相同的子字符串。
        如果 start 或 end 为 NaN 或者负数,那么将其替换为0。
        子字符串的长度等于 start 和 end 之差的绝对值。例如在 strvarsubstring(0, 3) 和 strvarsubstring(3, 0) 返回的子字符串的的长度是 3。

3 示例:

   var s = "The rain in Spain falls mainly in the plain";
   var ss = ssubstring(12, 17);   // 取子字符串
   consoleog(ss);       // 控制台输出Spain

根据下标获取呀。

var str="dgdfgdf123";
for(i=0;i<strlength();i++){
  alert(strcharAt(i));
}

这个直接用javascript的正则表达式取就可以了。

下面是简单的代码实现,仅供参考:

var a = 'asdfwlf!@#@##$%$%^SFDGD^%^%&&$#';
consolelog(amatch(/[\~!@#$%^&-_]/g));
//这个结果是:["!", "@", "#", "@", "#", "#", "$", "%", "$", "%", "^", "S", "F", "D", "G", "D", "^", "%", "^", "%", "&", "&", "$", "#"],出来的是一个数组。
可以通过join的方式编程一个字符串。
consolelog(amatch(/[\~!@#$%^&-_]/g)join());
//结果是:!,@,#,@,#,#,$,%,$,%,^,S,F,D,G,D,^,%,^,%,&,&,$,#
如果不想要',' ,还可以再把','去掉。
consolelog(amatch(/[\~!@#$%^&-_]/g)join(''));
//结果是:!@#@##$%$%^SFDGD^%^%&&$#


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13342633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-18
下一篇 2023-07-18

发表评论

登录后才能评论

评论列表(0条)

保存