ruby字符串的encoding,force_encoding,encode,encode!转码(编码转换)

ruby1.9开始对字符串编码支持已经比较完善,我们可以直接通过使用String类的实例方法encoding,
force_encoding, encode,
encode!
进行相关的编码操作。

JavaScript:正则表达式的应用

应用正则表达式对象RegExp

encoding

ruby1.9中为每个字符串对象增加了encoding信息

1.9.3p392 :001 > '我还是不懂'.encoding
 => #<Encoding:UTF-8> 
1.9.3p392 :002 > 

创建正则表达式

JavaScript中使用RegExp对象来表述一个正则表达式。使用正则表达式之前首先要创建一个RegExp对象

var oRexp = new RegExp(pattern,[flag]);

 

说明:

  pattern:为必选项,表示以字符串格式表示的正则表达式。

  flag:为可选项,是匹配选项,可用值如下:

  

 修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。

用户不一定要显示的创建RegExp,还可以隐式地创建RegExp对象

var oRegp = /pattern/[flag]

 

注意:

  使用 style=”color: #ff0000″>显式格式创建RegExp对象时,正则表达式中的“”,要用“\”来代替,且表达式开头和结尾不需要书写“/”。

判断字符串是否存在匹配内容

说明:

  test()
方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回
true,否则返回 false。

实例:

  检测用户输入的邮箱是否匹配模式

<!DOCTYPE html>
<html lang="en">
    <head>
        <title></title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link href="css/style.css" rel="stylesheet">
    </head>
    <body>
        <form>
            <input name="email" type="text" id="email">
            <input name="check" type="button" value="检测" onclick="checkMail()">
        </form>
        <script>
            function checkMail()
            {
                var objReg =/w+[@]{1}w+[.]{1}w+/  //模式
                var email = document.getElementById("email").value;
                if(objReg.test(email))    //利用test进行匹配检测,返回true或这false
                {
                    alert("Email符合规范")
                }else{
                    alert("Email不符合规范")
                }
            }
        </script>
    </body>
</html>

 

force_encoding

某些情况下这个附加编码信息可能不正确我们可以修正它

1.9.3p392 :011 > x='我还是不懂'
 => "我还是不懂" 
1.9.3p392 :012 > x.encoding
 => #<Encoding:UTF-8> 
1.9.3p392 :013 > x.bytes.to_a
 => [230, 136, 145, 232, 191, 152, 230, 152, 175, 228, 184, 141, 230, 135, 130] 
1.9.3p392 :014 > x.force_encoding 'gbk'
 => "x{E688}x{91E8}x{BF98}x{E698}x{AFE4}x{B88D}x{E687}x82" 
1.9.3p392 :015 > x.encoding
 => #<Encoding:GBK> 
1.9.3p392 :016 > x.bytes.to_a
 => [230, 136, 145, 232, 191, 152, 230, 152, 175, 228, 184, 141, 230, 135, 130] 
1.9.3p392 :017 >

注意: style=”color:#9933E5;”>force_encoding方法只是改变了字符串对象的编码信息,并没有改变字符串对象实际存储的内容。

对字符串进行匹配检测  

说明:

  exec()方法,通过对指定的字符串进行一次匹配检测,获取字符串中第一个与正则表达式所匹配的内容,并将该匹配内容及其子匹配的结果存储到返回的数组中。

实例:

  检测手机号,并将第一次匹配成功的内容及其子匹配的结果存储到返回的数组中。

        <script>
                var objReg =/1[35](d)(d{8})/g;
                var ostring="我的电话13111111111 它的电话15222222222"
                var arr=objReg.exec(ostring);
                for(var i=0;i<arr.length;i++)
                {
                    document.write(arr[i]);
                }
        </script>

 

说明:

  这里只有第一次匹配到的,即 style=”color: #000000″>13111111111这个电话, style=”color: #000000″>15222222222虽然也符合,但是这个方法只进行一次匹配。

发表评论

电子邮件地址不会被公开。 必填项已用*标注