IOS SyntaxError: Invalid regular expression: invalid group specifier name

40 篇文章 3 订阅

如果正则表达式中包含零宽断言的话 , 在安卓手机上正常 , 但是在ios上会报以下错误

Info Warn Error SyntaxError: Invalid regular expression: invalid group specifier name

常用零宽断言:?<=、?<!、?!、?=

例如:只显示姓名开头第一个字(正则),格式:张**

//只显示姓名开头第一个字

data.replace(/(?<=.)./g, '*')

这种写法在安卓是正常的,IOS就不行,因为该正则包含了零宽断言,会导致页面空白,打不开,需要相对应的转换,但是由于笔者的半吊子正则水平,一时半会还真修改不出来。

第一种:张**

/**
 * 只显示姓氏
 * @param {data} 传入数据
 * 格式:张**
 */
const showFirstName = (name) => {
  let newStr;
  if (name.length === 2) {
    newStr = name.substr(0, 1) + '*';
  } else if (name.length > 2) {
    let char = '';
    for (let i = 0, len = name.length - 1; i < len; i++) {
      char += '*';
    }
    newStr = name.substr(0, 1) + char;
  } else {
    newStr = name;
  }
  return newStr;
}

第二种:张*三

/**
 * 隐藏中间一个字
 * @param {data} 传入数据
 * 格式:张*三
 */
const showFirstName = (name) => {
	let newStr;
	if (name.length === 2) {
		newStr = name.substr(0, 1) + '*';
	} else if (name.length > 2) {
		let char = '';
		for (let i = 0, len = name.length - 2; i < len; i++) {
			char += '*';
		}
		newStr = name.substr(0, 1) + char + name.substr(-1, 1);
	} else {
		newStr = name;
	}
	return newStr;
}

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 这是一个JavaScript的错误提示,意思是正则表达式格式不正确,缺少了斜杠(/)。正则表达式是一种用于匹配字符串的模式,必须以斜杠开始和结束,例如:/hello/。如果缺少斜杠,就会出现这个错误。需要检查代码中的正则表达式是否正确书写。 ### 回答2: 这个错误信息是由于在JavaScript代码中正则表达式的语法出了问题,具体来说,是在写正则表达式时忘记了加上正则表达式的起始和结束符号"/",导致解析器无法识别这个正则表达式正则表达式是在JavaScript中常用的一种文本处理方式,常用于匹配和替换字符串中的某些特定模式。它的基本语法是在两个正斜杠"//"之间包含一些字符和特殊符号,表示需要匹配的模式。 这个错误信息发生的原因可能是在写正则表达式时,没有注意到正则表达式需要用正斜杠包含起来,例如: ``` var str = "Hello World"; var pattern = "llo"; // 错误的写法,缺少正则表达式的起始和结束符号 var match = str.match(pattern); ``` 这段代码中,我们想要在字符串"Hello World"中匹配"llo"这个模式。但是,pattern变量没有包含在正则表达式的起始和结束符号之间,导致解析器无法识别这个字符串为一个合法的正则表达式,从而报错。 正确的写法应该是在pattern变量前后加上"/",如下: ``` var str = "Hello World"; var pattern = /llo/; // 正确的写法,正则表达式被包含在两个斜杠之间 var match = str.match(pattern); ``` 这样,pattern变量就成为了一个合法的正则表达式,可以成功匹配字符串中的"llo"模式。 总之,uncaught syntaxerror: invalid regular expression: missing /错误信息表示在JavaScript代码中写正则表达式时缺少正则表达式的起始和结束符号"/",需要注意在编写正则表达式时要正确包含在两个正斜杠之间。 ### 回答3: “uncaught syntaxerror: invalid regular expression: missing /”是JavaScript中常见的一个错误信息,一般发生在正则表达式中出现问题的时候。 这个错误的意思是“无法捕获(uncaught)语法错误(syntaxerror):无效的正则表达式invalid regular expression):缺少/符号(missing /)”。 正则表达式是一种描述文本模式的工具,它用于对字符串进行匹配、搜索和替换操作。在使用正则表达式时,需要注意以下几点: 1. 正则表达式必须用斜杠“/”括起来,例如:/hello/。 2. 正则表达式中的特殊字符必须用反斜杠“\”进行转义,例如:/\s/匹配空白字符。 3. 正则表达式中的每个特殊字符都有其特殊的含义,例如:点号“.”匹配任何字符。 4. 如果正则表达式中包含斜杠“/”,需要对斜杠进行转义,例如:/http:\/\/www\.baidu\.com/。 如果出现了“uncaught syntaxerror: invalid regular expression: missing /”这个错误,说明正则表达式中可能缺少了斜杠“/”,或者有特殊字符未进行转义。解决这个问题的方法是检查正则表达式的语法是否正确,确保每个特殊字符都进行了转义,并且正则表达式已经用斜杠“/”括起来了。 实例:如果正则表达式中缺少/符号,例如:\d+,就会出现“uncaught syntaxerror: invalid regular expression: missing /”这个错误。需要将正则表达式改为:/\d+/。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余温无痕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值