js的一些字符串操作和正则

< a href="javascript:sayhello('张三')"></a>
   eval("2+3")可以直接把字符串计算出来
   var d=new Date().getDay();
   switch (d)
{
    case 6:x="今天是星期六";
    break;
    case 0:x="今天是星期日";
    break;
    default:
    x="期待周末";
}
  document.getElementById("demo").innerHTML=x;
  str="strong";
 k=str.replace('/o/g',Q)  
 //把o转化成	Q, (ps:  /g 在正则表达式中全局匹配的意思)
 //k=strQng

字符串操作

var x = “JohnJohn”; // x 是字符串
y = x.charAt(2); // h
y = x.charCodeAt(2); // 104
y = x.concat(y, y); // JohnJohn104104, x+y+y
y = x.indexOf(‘h’); // 2, 索引从0开始
y = x.lastIndexOf(‘h’); // 6
y = x.slice();
y = x.split(‘o’); //J,hnJ,hn
y = x.substr(2); // hnJohn
y = x.substring(2,4) // hn,[2,3]
y = x.toLocaleLowerCase(); // johnjohn,小写
y = x.toLocaleUpperCase(); // JOHNJOHN,大写
y = x.toString(); // 转成Stirng
y = x.toUpperCase(); // JOHNJOHN,大写
y = x.trim(); // JohnJohn,去除两端的空格
y = x.valueOf(); // 返回某个字符串对象的原始值

正则匹配规则

^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"

  • 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa
  • 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa
    ? 匹配前面元字符0次或1次,/ba*/将匹配b,ba
    (x) 匹配x保存x在名为$1…$9的变量中
    x|y 匹配x或y
    {n} 精确匹配n次
    {n,} 匹配n次以上
    {n,m} 匹配n-m次
    [xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
    [^xyz] 不匹配这个集合中的任何一个字符
    [\b] 匹配一个退格符
    \b 匹配一个单词的边界
    \B 匹配一个单词的非边界
    \cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M
    \d 匹配一个字数字符,/\d/ = /[0-9]/
    \D 匹配一个非字数字符,/\D/ = /[^0-9]/
    \n 匹配一个换行符
    \r 匹配一个回车符
    \s 匹配一个空白字符,包括\n,\r,\f,\t,\v等
    \S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
    \t 匹配一个制表符
    \v 匹配一个重直制表符
    \w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
    \W 匹配一个不可以组成单词的字符,如[\W]匹配" 5.98 &quot; 中 的 5.98&quot;中的 5.98",等于[^a-zA-Z0-9]。

使用 test()

test() 方法是一个正则表达式方法。

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

以下实例用于搜索字符串中的字符 “e”:

实例1:
var patt = /e/;
patt.test("The best things in life are free!");
//字符串中含有 "e",所以该实例输出为:true

使用 exec()

exec() 方法是一个正则表达式方法。

exec() 方法用于检索字符串中的正则表达式的匹配。

该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

以下实例用于搜索字符串中的字母 “e”:

实例1:
/e/.exec("The best things in life are free!");
//字符串中含有 "e",所以该实例输出为:e

search() 方法使用正则表达式

实例2:
使用正则表达式搜索 "Runoob" 字符串,且不区分大小写:
var str = "Visit Runoob!"; 
var n = str.search(/Runoob/i);
//输出结果为:6

search() 方法使用字符串

search 方法可使用字符串作为参数。字符串参数会转换为正则表达式:
实例1:
检索字符串中 "Runoob" 的子串:
var str = "Visit Runoob!"; 
var n = str.search("Runoob");

replace() 方法使用正则表达式

实例1:
使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :
var str = document.getElementById("demo").innerHTML; 
var txt = str.replace(/microsoft/i,"Runoob");
//结果输出为:Visit Runoob!

replace() 方法使用字符串

replace() 方法将接收字符串作为参数:
var str = document.getElementById("demo").innerHTML; 
var txt = str.replace("Microsoft","Runoob");

ps:
正则表达式参数可用在以上方法中 (替代字符串参数)。
正则表达式使得搜索功能更加强大(如实例中不区分大小写)。

常用的正则
function    isDecimal(strValue )  {  
   var  objRegExp= /^\d+\.\d+$/;
   return  objRegExp.test(strValue);  
}  

验证身份证号码:
/^\d{15} | \d{18} | \d{17}[x X] $/

/*校验是否中文名称组成 */
function ischina(str) {
    var reg=/^[\u4E00-\u9FA5]{2,4}$/;   /*定义验证表达式*/
    return reg.test(str);     /*进行验证*/
}

/*校验是否全由8位数字组成 */
function isStudentNo(str) {
    var reg=/^[0-9]{8}$/;   /*定义验证表达式*/
    return reg.test(str);     /*进行验证*/
}

/*校验电话码格式 */
function isTelCode(str) {
    var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
    return reg.test(str);
}

/*校验邮件地址是否合法 */
function IsEmail(str) {
    var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
    return reg.test(str);
}

在这里插入图片描述


确认框操作

  confirm 确认框
    if(confirm("are you ok?"){
           xxx
    }
    else{
          xxxx
    }

test.innerHTML:

也就是从对象的起始位置到终止位置的全部内容,包括Html标签。

上例中的test.innerHTML的值也就是“test1 test2 ”。

test.innerText:

从起始位置到终止位置的内容, 但它去除Html标签

上例中的text.innerTest的值也就是“test1 test2”, 其中span标签去除了。

test.outerHTML:

除了包含innerHTML的全部内容外, 还包含对象标签本身。

上例中的text.outerHTML的值也就是

test1 test2

猜你喜欢

转载自blog.csdn.net/weixin_43722571/article/details/98489859
今日推荐