我制作的内容(如果相关)是用于分隔彼此不同的unicode字符的函数(例如,字母中的数字)。 正如您从标题中看到的那样,它给出了一个错误未捕获的SyntaxError:无效的正则表达式:/?/:无需重复
我绝对不是正则表达式的专家。我还没有去研究它,而且我已经搜索过堆栈,但是我没有理解任何答案,所以如果你对我保持简单,那将非常感谢,抱歉因为那种不便。
链接在这里: http://jsfiddle.net/ueb2bu9o/5/
useReg = new RegExp(getFirstSplit[i]);
以上是计算机说明问题所在的代码,但这可能不正确。此外,对于我的这个小项目,我使用谷歌Chrome和jsfiddle.net
如果您需要更多信息,请询问,我将更新此帖
答案 0 :(得分:0)
有一些字符如? \ / ...和其他你不能直接使用的,你应该使用反斜杠 \ 来逃避它们。阅读更多相关信息here。 你看错误是因为?是这些特殊字符之一。
答案 1 :(得分:0)
?
是正则表达式中的特殊字符。这意味着它之前的字符重复0或1次。
要按字面搜索?,你必须在'\\\\?'
答案 2 :(得分:0)
如果我得到了你想要做的事情,那么你只是试图逐字逐句地查看整个字符串,然后将它们分类为字母,数字或垃圾,对吗? / p>
如果是这种情况,你根本不需要拆分字符串 - .match()
只会根据你提供的正则表达式从你的字符串生成一系列匹配项,而你可以以任何你想要的方式操纵结果数组。在这种情况下,您希望使用.join()
将它们连接成一个字符串。
您要为每个类别使用的正则表达式为:
/[a-z]/gi
,意思是匹配A到Z的所有字母/[0-9]/gi
,意思是匹配0到9之间的所有数字字符/[^a-z0-9]/gi
,表示与A-Z或0-9字符集不匹配的字符,即前两个字符集中未选中的字符。这是JS代码:
function manipulateString(string) {
var letter,
numbers,
junk;
letter = string.match(/[a-z]/gi).join('');
numbers = string.match(/[0-0]/gi).join('');
junk = string.match(/[^a-z0-9]/gi).join('');
console.log(letter);
console.log(numbers);
console.log(junk);
}