Rumah > hujung hadapan web > tutorial js > JS常用正则表达式总汇

JS常用正则表达式总汇

little bottle
Lepaskan: 2019-04-29 17:45:43
ke hadapan
2818 orang telah melayarinya

JS中正则表达式或“regex”用于匹配字符串的各个部分,本篇文章具有较高的收藏价值,感兴趣的朋友可以了解一下,希望对你有所帮助。

匹配正则

使用 .test() 方法

let testString = "My test string";
let testRegex = /string/;
testRegex.test(testString);
Salin selepas log masuk

匹配多个模式

使用操作符号 |

const regex = /yes|no|maybe/;
Salin selepas log masuk

忽略大小写

使用i标志表示忽略大小写

const caseInsensitiveRegex = /ignore case/i;
const testString = 'We use the i flag to iGnOrE CasE';
caseInsensitiveRegex.test(testString); // true
Salin selepas log masuk

提取变量的第一个匹配项

使用 .match() 方法

const match = "Hello World!".match(/hello/i); // "Hello"
Salin selepas log masuk

相关教程:JavaScript视频教程

提取数组中的所有匹配项

使用 g 标志

const testString = "Repeat repeat rePeAT";
const regexWithAllMatches = /Repeat/gi;
testString.match(regexWithAllMatches); // ["Repeat", "repeat", "rePeAT"]
Salin selepas log masuk

匹配任意字符

使用通配符. 作为任何字符的占位符

// To match "cat", "BAT", "fAT", "mat"
const regexWithWildcard = /.at/gi;
const testString = "cat BAT cupcake fAT mat dog";
const allMatchingWords = testString.match(regexWithWildcard); // ["cat", "BAT", "fAT", "mat"]
Salin selepas log masuk

用多种可能性匹配单个字符

  • 使用字符类,你可以使用它来定义要匹配的一组字符
  • 把它们放在方括号里 []
//匹配 "cat" "fat" and "mat" 但不匹配 "bat"
const regexWithCharClass = /[cfm]at/g;
const testString = "cat fat bat mat";
const allMatchingWords = testString.match(regexWithCharClass); // ["cat", "fat", "mat"]
Salin selepas log masuk

匹配字母表中的字母

使用字符集内的范围 [a-z]

const regexWidthCharRange = /[a-e]at/;
const regexWithCharRange = /[a-e]at/;
const catString = "cat";
const batString = "bat";
const fatString = "fat";

regexWithCharRange.test(catString); // true
regexWithCharRange.test(batString); // true
regexWithCharRange.test(fatString); // false
Salin selepas log masuk

匹配特定的数字和字母

你还可以使用连字符来匹配数字

const regexWithLetterAndNumberRange = /[a-z0-9]/ig;
const testString = "Emma19382";
testString.match(regexWithLetterAndNumberRange) // true
Salin selepas log masuk

匹配单个未知字符

要匹配您不想拥有的一组字符,使用否定字符集 ^

const allCharsNotVowels = /[^aeiou]/gi;
const allCharsNotVowelsOrNumbers = /[^aeiou0-9]/gi;
Salin selepas log masuk

匹配一行中出现一次或多次的字符

使用 + 标志

    const oneOrMoreAsRegex = /a+/gi;
const oneOrMoreSsRegex = /s+/gi;
const cityInFlorida = "Tallahassee";

cityInFlorida.match(oneOrMoreAsRegex); // ['a', 'a', 'a'];
cityInFlorida.match(oneOrMoreSsRegex); // ['ss'];
Salin selepas log masuk

匹配连续出现零次或多次的字符

使用星号 *

const zeroOrMoreOsRegex = /hi*/gi;
const normalHi = "hi";
const happyHi = "hiiiiii";
const twoHis = "hiihii";
const bye = "bye";

normalHi.match(zeroOrMoreOsRegex); // ["hi"]
happyHi.match(zeroOrMoreOsRegex); // ["hiiiiii"]
twoHis.match(zeroOrMoreOsRegex); // ["hii", "hii"]
bye.match(zeroOrMoreOsRegex); // null
Salin selepas log masuk

惰性匹配

  • 字符串中与给定要求匹配的最小部分
  • 默认情况下,正则表达式是贪婪的(匹配满足给定要求的字符串的最长部分)
  • 使用 ? 阻止贪婪模式(惰性匹配 )

    const testString = "catastrophe";
    const greedyRexex = /c[a-z]*t/gi;
    const lazyRegex = /c[a-z]*?t/gi;
    
    testString.match(greedyRexex); // ["catast"]
    testString.match(lazyRegex); // ["cat"]
Salin selepas log masuk

匹配起始字符串模式

要测试字符串开头的字符匹配,请使用插入符号^,但要放大开头,不要放到字符集中

const emmaAtFrontOfString = "Emma likes cats a lot.";
const emmaNotAtFrontOfString = "The cats Emma likes are fluffy.";
const startingStringRegex = /^Emma/;

startingStringRegex.test(emmaAtFrontOfString); // true
startingStringRegex.test(emmaNotAtFrontOfString); // false
Salin selepas log masuk

匹配结束字符串模式

使用 $ 来判断字符串是否是以规定的字符结尾

const emmaAtBackOfString = "The cats do not like Emma";
const emmaNotAtBackOfString = "Emma loves the cats";
const startingStringRegex = /Emma$/;

startingStringRegex.test(emmaAtBackOfString); // true
startingStringRegex.test(emmaNotAtBackOfString); // false
Salin selepas log masuk

匹配所有字母和数字

使用\word 简写

const longHand = /[A-Za-z0-9_]+/;
const shortHand = /\w+/;
const numbers = "42";
const myFavoriteColor = "magenta";

longHand.test(numbers); // true
shortHand.test(numbers); // true
longHand.test(myFavoriteColor); // true
shortHand.test(myFavoriteColor); // true
Salin selepas log masuk

除了字母和数字,其他的都要匹配

\W 表示 \w 的反义

const noAlphaNumericCharRegex = /\W/gi;
const weirdCharacters = "!_$!!";
const alphaNumericCharacters = "ab283AD";

noAlphaNumericCharRegex.test(weirdCharacters); // true
noAlphaNumericCharRegex.test(alphaNumericCharacters); // false
Salin selepas log masuk

匹配所有数字

你可以使用字符集[0-9],或者使用简写 \d

const digitsRegex = /\d/g;
const stringWithDigits = "My cat eats $20.00 worth of food a week.";

stringWithDigits.match(digitsRegex); // ["2", "0", "0", "0"]
Salin selepas log masuk

匹配所有非数字

\D 表示 \d 的反义

const nonDigitsRegex = /\D/g;
const stringWithLetters = "101 degrees";

stringWithLetters.match(nonDigitsRegex); // [" ", "d", "e", "g", "r", "e", "e", "s"]
Salin selepas log masuk

匹配空格

使用 \s 来匹配空格和回车符

const sentenceWithWhitespace = "I like cats!"
var spaceRegex = /\s/g;
whiteSpace.match(sentenceWithWhitespace); // [" ", " "]
Salin selepas log masuk

匹配非空格

\S 表示 \s 的反义

const sentenceWithWhitespace = "C a t"
const nonWhiteSpaceRegex = /\S/g;
sentenceWithWhitespace.match(nonWhiteSpaceRegex); // ["C", "a", "t"]
Salin selepas log masuk

匹配的字符数

你可以使用 {下界,上界} 指定一行中的特定字符数

const regularHi = "hi";
const mediocreHi = "hiii";
const superExcitedHey = "heeeeyyyyy!!!";
const excitedRegex = /hi{1,4}/;

excitedRegex.test(regularHi); // true
excitedRegex.test(mediocreHi); // true
excitedRegex.test(superExcitedHey); //false
Salin selepas log masuk

匹配最低个数的字符数

使用{下界, }定义最少数量的字符要求,下面示例表示字母 i 至少要出现2次

const regularHi = "hi";
const mediocreHi = "hiii";
const superExcitedHey = "heeeeyyyyy!!!";
const excitedRegex = /hi{2,}/;

excitedRegex.test(regularHi); // false
excitedRegex.test(mediocreHi); // true
excitedRegex.test(superExcitedHey); //false
Salin selepas log masuk

匹配精确的字符数

使用{requiredCount}指定字符要求的确切数量

    const regularHi = "hi";
const bestHi = "hii";
const mediocreHi = "hiii";
const excitedRegex = /hi{2}/;

excitedRegex.test(regularHi); // false
excitedRegex.test(bestHi); // true
excitedRegex.test(mediocreHi); //false
Salin selepas log masuk

匹配0次或1次

使用 ? 匹配字符 0 次或1次

const britishSpelling = "colour";
const americanSpelling = "Color";
const languageRegex = /colou?r/i;

languageRegex.test(britishSpelling); // true
languageRegex.test(americanSpelling); // true
Salin selepas log masuk

代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。

Atas ialah kandungan terperinci JS常用正则表达式总汇. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan