我需要找到一个只允许字母数字的reg ex。到目前为止,我尝试的每个人都只在字符串是字母数字的情况下工作,意思是既包含字母又包含数字。我只想要一个既允许其中一种,又不要求两者兼得的。
当前回答
同样,如果你只是寻找字母字符,你可以使用下面的正则表达式:
/[^a-zA-Z]/gi
typescript中的示例代码:
let samplestring = "!#!&34!# Alphabet !!535!!! is safe"
let regex = new RegExp(/[^a-zA-Z]/gi);
let res = samplestring.replace(regex,'');
console.log(res);
注意:如果您对RegEx语法感到好奇,请访问regexr并使用小抄或使用正则表达式。
编辑:字母数字->字母
其他回答
使用字符类这个词。下面是等价于a ^[a- za - z0 -9_]+$:
^\w+$
解释:
^字符串的开始 \w任意字符(A-Z, A-Z, 0-9, _)。 $ end of string
如果不想匹配下划线,请使用/[^\w]|_/g。
字母数字区分大小写:
if (/^[a-zA-Z0-9]+$/.test("SoS007")) {
alert("match")
}
同样,如果你只是寻找字母字符,你可以使用下面的正则表达式:
/[^a-zA-Z]/gi
typescript中的示例代码:
let samplestring = "!#!&34!# Alphabet !!535!!! is safe"
let regex = new RegExp(/[^a-zA-Z]/gi);
let res = samplestring.replace(regex,'');
console.log(res);
注意:如果您对RegEx语法感到好奇,请访问regexr并使用小抄或使用正则表达式。
编辑:字母数字->字母
我有类似于三星Galaxy A10s 6.2英寸(2GB,32GB ROM) Android 9.0,(1300万+ 200万)+ 800万双卡4000mAh 4G LTE智能手机-黑色(BF19)
以下是我所做的:
string.replace(/[^a-zA-Z0-9 ,._-]/g, '').split(',').join('-').split(' ').join('-').toLowerCase()
注意,i允许。然后使用split()和join()分别替换,to -和空格to -。
我最终得到了这样的东西: samsung-galaxy-a10s-6.2英寸-2gb-32gb-rom-android-9.0-13mp-2mp-8mp-dual-sim-4000mah-4g-lte-smartphone-black-bf19-20,这就是我想要的。
可能有更好的解决方案,但这是我发现工作对我很好。
将这些代码输入到您的SCRATCHPAD并查看操作。
var str=String("Blah-Blah1_2,oo0.01&zz%kick").replace(/[^\w-]/ig, '');